1
今天,我發現elasticsearch的怪異的行爲1.5.2不正確的和/或優先QUERY_STRING
我索引的兩份文件:(爲什麼?)
POST http://localhost:9200/index/type {
"string":"a b"
}
POST http://localhost:9200/index/type {
"string" : "c d"
}
而下面的查詢返回沒有命中:
POST http://localhost:9200/index/type/_search
{
"query" : {
"query_string" : {
"query_string" : {
"query" : "string:a AND string:b OR string:c AND string:d"
}
}
}
}
但是超過與運算括號同一查詢返回2個文件,按預期:
POST http://localhost:9200/index/type/_search
{
"query" : {
"query_string" : {
"query_string" : {
"query" : "(string:a AND string:b) OR (string:c AND string:d)"
}
}
}
}
根據規範 (https://www.elastic.co/guide/en/elasticsearch/reference/1.5/query-dsl-query-string-query.html)
NOT優先於AND,其中在優先或
所以兩個詢問必須返回相同的結果。
這是錯誤還是我錯過了什麼?
在此先感謝!