我有一些搜索查询,例如"match":{"product name":"glasses car"}
我正在寻找眼镜或汽车(或两者)。
但我想排除包含google glass
或包含google car
在其中的文档。那么我将如何过滤掉它们呢?
我可以使用 bool 查询并使用 must_not for google
,但是我将失去得分并获得恒定分数。
我有一些搜索查询,例如"match":{"product name":"glasses car"}
我正在寻找眼镜或汽车(或两者)。
但我想排除包含google glass
或包含google car
在其中的文档。那么我将如何过滤掉它们呢?
我可以使用 bool 查询并使用 must_not for google
,但是我将失去得分并获得恒定分数。
您应该使用 afiltered query
和 afilter
来排除类似的单词google
并将您的主要搜索保留为query
.
filter
不影响评分,仅过滤查询的一部分query
会影响评分。
您可以在 ElasticSearch 文档的Filtered Query 页面上找到一个小示例。