Lucene 所有这些词都有自己的特点
我有一个在Lucene中索引的“描述”字段。这个字段包含一本书的描述。 如何使用BooleanQuery类在该字段上实现“所有这些单词”功能? 例如,如果用户键入“畅销书”,则应返回描述中包含所有这些单词的书籍Lucene 所有这些词都有自己的特点,lucene,Lucene,我有一个在Lucene中索引的“描述”字段。这个字段包含一本书的描述。 如何使用BooleanQuery类在该字段上实现“所有这些单词”功能? 例如,如果用户键入“畅销书”,则应返回描述中包含所有这些单词的书籍 谢谢 我相信如果您通过 并将第二个参数设置为常量booleansclause.occurrent.MUST,那么您应该得到您想要的。等效的查询语法是“+term1+term2+term3…”。有两个部分可以实现这一点: 您需要对传入的文档进行适当的分析,以便对单个单词分别进行标记和索引
谢谢 我相信如果您通过
并将第二个参数设置为常量
booleansclause.occurrent.MUST
,那么您应该得到您想要的。等效的查询语法是“+term1+term2+term3…”。有两个部分可以实现这一点:
和
运算符组合org.apache.lucene.analysis
包。有许多不同语言的选项,词干、停止词等等
对于#2,Lucene附带了很多查询解析器,主要在org.apache.Lucene.queryParser
package中MultiFieldQueryParser
可能对您有好处:要要求每个术语都出现,只需调用
QueryParser.setDefaultOperator(QueryParser.AND_OPERATOR)
,虽然有几个版本,但仍然是准确的,对于分析和查询解析的更多信息非常有用
QueryParser.setDefaultOperator(QueryParser.AND_OPERATOR)