Elasticsearch-从6.7升级到7.0后,此搜索未返回正确的结果

{  

"query":{

"constant_score":{

"filter":{

"bool":{

"should":{

"terms":{

"field_a":[

"value1", "value2"

]

}

},

"must":{

"term":{

"field_b":"value"

}

}

}

}

}

}

}

假定此搜索返回的结果包含field_a中的value1或value2和field_b中的value。

因此类似于此MySQL查询:

SELECT * FROM table WHERE field_a IN ('value1', 'value2') AND field_b = value

升级后,它将返回所有结果,其中field_b = value。查询的第一部分被完全忽略。

有修复建议吗?

回答:

您正在遇到这一重大变化。minimum_should_match不再设置为1。要更正此问题,请将您minimum_should_match1

您的新查询可以这样修复:

{  

"query":{

"constant_score":{

"filter":{

"bool":{

"should":{

"terms":{

"field_a":[

"value1", "value2"

]

}

},

"minimum_should_match": 1,

"must":{

"term":{

"field_b":"value"

}

}

}

}

}

}

}

以上是 Elasticsearch-从6.7升级到7.0后,此搜索未返回正确的结果 的全部内容, 来源链接: utcz.com/qa/424563.html

回到顶部