我們在elastic
文件保存在以下結構:elasticsearch:合併文本匹配和數組包含
{
...
name: "name",
ancestors: ["id1", "id2", "id3"],
...
}
我想創建一個搜索name: "some name"
AND
ancestors contains "id1"
搜索查詢。
我試過很多查詢,但似乎沒有工作,或返回所需的結果。如果有任何幫助,這個組合查詢應該每次只返回一個條目。
一些我已經試過查詢有以下幾種:
filtered: {
query: {
query_string: {
query: "name:name"
},
term: {
ancestors: "id1"
}
}
}
__
match: {
name: "name",
ancestors: "id1"
},
defaultOperator: 'AND'
__
bool: {
must: { term: { name: "name" }},
filter: {
term: { ancestors: "id1" }
}
}
的映射如下:
{
"data": {
"mappings": {
"entry": {
"properties": {
"ancestors": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
}
}
}
}
我們沒有改變默認的映射,這就是爲什麼ancestors
是string
型的,但我不認爲這有什麼差別
你嘗試過什麼疑問? – Richa
我在問題 – XeniaSis
中增加了一些,還分享了映射..'GET/index/type/_mapping' – Richa