首页 > 解决方案 > Lucene 不适用于 MUSTNOT 布尔查询

问题描述

我为一组数据创建了一个 lucene 索引,并试图从中检索结果。

当我使用SHOULD进行布尔查询时,lucene 会返回我预期的结果。

 eg: (title:"america")

但另一方面,当我执行MUST_NOT查询时,即使有很多数据满足此条件,它也会返回空结果。

(-title:"america")

我想我犯了一些愚蠢的错误,但到目前为止还无法弄清楚。有人可以指点一下。

标签: javalucene

解决方案


明白了这个问题。我应该将 MUSt NoT 与其他一些运算符结合起来。

Quote from https://www.bookdepository.com/Lucene-in-Action-Erik-Hatcher/9781933988177?redirected=true&utm_medium=Google&utm_campaign=Base3&utm_source=BE&utm_content=Lucene-in-Action&selectCurrency=EUR&w=AF4UAU960P6LMLA8VCZZ&gclid=Cj0KCQjwuL_8BRCXARIsAGiC51C8OdXsVpJbYRfodiFcGFEl2FKylqh2MvBjnHs9T5fVfMmDzZXbU4oaAisFEALw_wcB

在术语前面放置 NOT 会排除与以下术语匹配的文档。否定一个术语必须与至少一个非否定术语结合才能返回文档;换句话说,不可能使用 NOT term 之类的查询来查找所有不包含术语的文档。


推荐阅读