我無法在嵌套文檔中組合term,must_not查詢。ElasticSearch中的術語,嵌套文檔和must_not查詢不兼容?
意識例子可以在這裏找到:http://sense.qbox.io/gist/be436a1ffa01e4630a964f48b2d5b3a1ef5fa176
這裏我映射:
{
"mappings": {
"docs" : {
"properties": {
"tags" : {
"type": "nested",
"properties" : {
"type": {
"type": "string",
"index": "not_analyzed"
}
}
},
"label" : {
"type": "string"
}
}
}
}
}
在此指數兩個文件:
{
"tags" : [
{"type" : "POST"},
{"type" : "DELETE"}
],
"label" : "item 1"
},
{
"tags" : [
{"type" : "POST"}
],
"label" : "item 2"
}
當我詢問該指數是這樣的:
{
"query": {
"nested": {
"path": "tags",
"query": {
"bool": {
"must": {
"term": {
"tags.type": "DELETE"
}
}
}
}
}
}
}
我有一重擊(這是正確的)
當我想不包含標籤「刪除」的文件,該查詢:
{
"query": {
"nested": {
"path": "tags",
"query": {
"bool": {
"must_not": {
"term": {
"tags.type": "delete"
}
}
}
}
}
}
}
我已經有2次點擊(這是不正確的)。 這個問題看起來非常接近這個(Elasticsearch array must and must_not),但它不是...
你能給我一些線索來解決這個問題嗎?
謝謝
謝謝,它的工作原理。你能解釋你爲什麼這麼做嗎? – user3393203
僅僅因爲它沒有「include_in_root」是不可能的。現在,您可以將所有「tags.type」視爲一個數組,而不是擁有複雜的嵌套過濾器/查詢系統。這樣,你可以說「像給我所有的文檔沒有在標籤類型數組中的'DELETE'」。 有時候很難說出這些東西,但希望這是有道理的! –
它不適合我。這既奇怪又傷心。這可能是因爲我使用'terms'和'integer'? –