在我elasticsearch指數我有這是一個嵌套的對象,像這樣的屬性文件:在elasticsearch中,是否可以對嵌套對象使用常規查詢?
{
"my_index": {
"mappings": {
"my_type": {
"properties": {
"nested_prop": {
"type": "nested",
"properties": {
"subprop1": {
"type": "boolean"
},
"subprop2": {
"type": "keyword"
}
}
}
}
}
}
}
}
我可以搜索與嵌套查詢對象現在,像這樣:
{
"query": {
"nested": {
"path": "nested_prop",
"query": {
"bool": {
"must": [{
"term": {
"nested_prop.subprop1": "true"
}
}, {
"term": {
"nested_prop.subprop2": "SOME_KEY"
}
}]
}
}
}
}
}
到目前爲止太好了。我使用querystring中的一個非常普遍的機制構建我的elasticsearch查詢。所以,我希望能夠用「常規」(非嵌套)查詢還是查詢文件,像這樣:
{
"query": {
"term": {
"nested_prop.subprop1": "true"
}
}
}
不過,我只得到空的結果與類型的查詢,除非我包它變成nested
查詢。
有沒有辦法使用嵌套對象的簡單查詢?
此答案可能有所幫助:http://stackoverflow.com/questions/35353952/is-it-possible-to-search-nested-objects-in-elasticsearch-with-the-lucene-query-s/35354869# 35354869 – Val
謝謝,@Val,雖然我不打算使用Lucene查詢語法,但我發現[answer](https://github.com/elastic/elasticsearch/issues/11322)與您指出的答案鏈接在:_「嵌套字段需要使用嵌套查詢/過濾器進行查詢,因爲多個文檔可以匹配,並且您需要能夠指定這些多個分數應該如何減少到單個分數。」# –