Elasticsearch의 필터에 대한 이해에 문제가 있습니다. 중첩 된 배열이있는 인덱스를 검색하는 필터를 작성하려고합니다.배열에서 검색 할 때 Elasticsearch의 "bool"필터링
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"term": {
"bParams.bParamList.year": [ 2007 ]
}
},
{
"range": {
"bParams.bParamList.value": {
"from": 1,
"to": 453
}
}
},
{
"term": {
"bParams.bParamList.bParamId": [ 304 ]
}
}
]
}
}
}
}
}
내가 쿼리 결과를 반환하지 않을 것으로 예상하지만, 결과가 반환됩니다
"bParams": {
"bParamList": [
{
"bParamId": 298,
"year": 2008,
"quarter": 4,
"value": 239698
},
{
"bParamId": 298,
"year": 2009,
"quarter": 4,
"value": 453
},
{
"bParamId": 298,
"year": 2007,
"quarter": 4,
"value": 190000
},
{
"bParamId": 304,
"year": 2009,
"quarter": 4,
"value": 7000
}
]
}
요청입니다. 적절한 가치가있는 요소가 있음을 이해합니다. 나는 모든 요청 매개 변수를 동시에 고려해야한다.
: 색인 무슨
nested
없이이 본질적으로 동일하다? 중첩 된 쿼리가 필요합니다. 이 [질문/답변] (http://stackoverflow.com/questions/17536820/how-to-avoid-cross-object-search-behavior-with-nested-types-in-elastic-search/17543151)을보십시오. # 17543151). – Thorsten
답변 주셔서 감사합니다. 나는 이런 식으로 취급했다. 매핑을 요청하지 않고도 제대로 실행할 수있는 또 다른 방법이 있습니까? 인덱스를 만들었습니다. 다시 인덱싱하지 않고 기존 매핑을 수정할 수 있습니까? – helvar
@Alex의 답변에 따라 매핑을 재설정하고 모든 문서의 색인을 다시 만들어야합니다 (불행히도). – Thorsten