4
탄성 검색을 사용하는 와일드 카드 쿼리에 복잡한 필터를 추가하려고합니다. 필터가 작동하고있는 것 같지만 결과는 와일드 카드를 고려하지 않습니다. 이것이 가능합니까 아니면 와일드 카드 필터에 대한 대안이 있습니까?Elastic Search에서 와일드 카드 검색 필터링
{
"query": {
"filtered": {
"query": {
"wildcard": {
"name": "*frog*"
},
"filter": {
"bool": {
"must": {
"term": {
"is_animal": false
}
}
},
"or": [
{
"terms": {
"reptiles.codes": [
27
]
}
},
{
"nested": {
"path": "owners",
"query": {
"bool": {
"should": {
"term": {
"pets": "cat"
}
}
}
}
}
},
{
"nested": {
"path": "locations",
"query": {
"bool": {
"should": {
"term": {
"home": true
}
}
}
}
}
}
]
}
}
}
}
}
을 대안으로 내 "부울"내부 필터로 와일드 카드를 추가 할 수 있습니다 : 다음과 같이 쿼리는 { "해야"....}}?
개구리가 동물이기 때문에 값 is_animal이 false로 트리거됩니다. 너의 쟁점이 될 수있는 기회? 어쩌면 wildcart 쿼리를 match_all 쿼리로 대체하고 문서가 있는지 확인하십시오. –
사실, 개구리는 파충류입니다. – user3241997
나는 당신의 접근법을 사용하여 시도했고 그것은 0 히트를 받았습니다. http://stackoverflow.com/questions/35586116/elasticsearch-filter-does-not-work-with-wildcard- 나를 위해 – AbtPst