我使用olivere的彈性去圖書館運行彈性查詢 - https://godoc.org/github.com/olivere/elastic#NestedQueryElasticsearch轉到嵌套查詢
的數據我想上看起來這樣的查詢:
"_source": {
"field1": "randVal1",
"field2": "randVal2",
"nestedfield": {
"ind1": "val1"
}
}
我想使用NestedQuery
呼叫從彈性去圖書館,像這樣運行在nestedfield
查詢:
aquery := elastic.NewTermQuery("ind1", "val1")
query := elastic.NestedQuery("nestedfield", aquery)
但我得到一個錯誤,指出:
個太多的參數轉換爲NestedQuery
我試圖檢索所有的文件,其中的nestedfield
的ind1
是val1
。希望在構建這個查詢時有任何幫助。
編輯:
我把它改成NewNestedQuery,現在它不給這個錯誤。但是,它不會返回任何結果,即使該文檔存在於索引中,我也能夠在非嵌套字段上進行查詢。
我嘗試這樣做:
aquery := elastic.NewTermQuery("ind1", "val1")
query := elastic.NewNestedQuery("nestedfield", aquery)
這:
query := elastic.NewNestedQuery("nestedfield", elastic.NewMatchQuery("nestedfield.ind1", "val1"))
但他們都給予0的結果。任何想法我做錯了什麼?
編輯#2
的映射是:
"field1": { "type": "string" },
"field2": { "type": "string" },
"nestedfield": {
"type": "nested"
}
什麼最終的工作是這樣的:
query := elastic.NewMatchQuery("nestedfield.ind1", "val1")
我是能夠增加額外的字段爲 'nestedfield',做像這樣的查詢:
query := elastic.NewBoolQuery().Filter(elastic.NewMatchQuery("nestedfield.ind1", "val1"), elastic.NewMatchQuery("nestedfield.ind2", "val2"))
分享您的地圖。我懷疑「嵌套字段」實際上不是嵌套文檔。 – Peter
我已經在下面調整了答案,但是您應該嘗試給出用於搜索的完整代碼的更多詳細信息。 –
共享映射和最終工作的結果 – covfefe