我正在使用'必須'和'must_not'功能的布爾查詢。它按預期工作,直到我到達一個3層深的房產。例如簡單的匹配查詢,如...ElasticSearch |布爾查詢
GET city/town/_search
{
"query": {
"match": {
"contact.residence.address": "Rocky Road"
}
}
}
作品只是罰款,並返回結果,但如果我做同樣的布爾查詢如..
GET city/town/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"contact.residence.address": "Rocky Road"
}
}
]
}
}
}
返回任何結果。爲什麼是這樣?????請記住其他布爾查詢,如..
GET city/town/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"store.name": "Hendersons"
}
}
]
}
}
}
工作就好!它僅適用於3級深的任何字段,因此搜索任何屬於prop1.prop3.prop3的術語
你可能有'contact.residence.address'場用「文本」類型映射。如果是這種情況,那麼在第二個查詢中用'match'替換'term'將按預期工作。我建議你閱讀一節爲什麼查詢詞不符合我的文檔?在官方文檔[這裏](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html#query-dsl-term-query)。 – avr