매핑을 배열 값과 일치하는 필터, 내가 어디에 "애니메이션"입력 것이라고 - 그것은 나를 장르로 애니메이션을 가지고있는 모든 항목을 반환합니다. 내가 "인덱스"내 데이터베이스를 매핑하고 둘 필요가 볼보다 내가 읽을 때,Elasticsearch 필터는 분석 인덱스의 필터를 만들려고 노력 메신저 필드
GET /test/_search
{
"query": {
"bool": {
"filter": {
"terms": {
"genres": [
"Animation",
"History"
]
}
}
}
}
}
}
이 항목이없는 결과 : - 다음은 반환 "not_analyzed"
는 용어를 사용하여 시도 일부 항목.
그러나, 나는 이런 식으로 뭔가를 사용하여 필터를 사용하지 않음으로써 이러한 결과를 얻을 수 있습니다 :
GET /tmdb/_search
{
"query": {
"bool": {
"must" : [
{
"match": {
"genres": "history"
}
},
{
"match": {
"genres": "animation"
}
}
]
}
}
}
이 나에게 어떤 결과를 제공 않지만, 그것은 단지 "애니메이션"와 "역사"모두가 값을 반환 그들의 장르로.
내 질문 - 내 데이터베이스를 다시 매핑하고 "인덱스"를 추가해야합니까 : "not_analyzed"를 필터를 사용할 열에 추가하거나 두 번째 옵션 (필터를 사용하지 않음) .
편집 :이 같은 생각 뭔가 작동합니다,하지만 내가 예상대로 작동하지 않는 연산자 (나를 위해 작동하지 않는 것) :
GET /test/_search
{
"query": {
"match": {
"genres": {
"query": "animation",
"query": "history",
"operator": "and"
}
}
}
}
나는 답을 찾지 못해 좌절감을 느끼고 있었고, 이것은 내 문제를 해결합니다. 감사! – Edgar
도움이 되니 기쁩니다! – Val