Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lucene 所有这些词都有自己的特点_Lucene - Fatal编程技术网

Lucene 所有这些词都有自己的特点

Lucene 所有这些词都有自己的特点,lucene,Lucene,我有一个在Lucene中索引的“描述”字段。这个字段包含一本书的描述。 如何使用BooleanQuery类在该字段上实现“所有这些单词”功能? 例如,如果用户键入“畅销书”,则应返回描述中包含所有这些单词的书籍 谢谢 我相信如果您通过 并将第二个参数设置为常量booleansclause.occurrent.MUST,那么您应该得到您想要的。等效的查询语法是“+term1+term2+term3…”。有两个部分可以实现这一点: 您需要对传入的文档进行适当的分析,以便对单个单词分别进行标记和索引

我有一个在Lucene中索引的“描述”字段。这个字段包含一本书的描述。 如何使用BooleanQuery类在该字段上实现“所有这些单词”功能? 例如,如果用户键入“畅销书”,则应返回描述中包含所有这些单词的书籍


谢谢

我相信如果您通过


并将第二个参数设置为常量
booleansclause.occurrent.MUST
,那么您应该得到您想要的。等效的查询语法是“+term1+term2+term3…”。

有两个部分可以实现这一点:

  • 您需要对传入的文档进行适当的分析,以便对单个单词分别进行标记和索引
  • 用户查询需要标记化,标记与
    运算符组合
  • 对于#1,有许多分析器和标记器,可以查看
    org.apache.lucene.analysis
    包。有许多不同语言的选项,词干、停止词等等

    对于#2,Lucene附带了很多查询解析器,主要在
    org.apache.Lucene.queryParser
    package中
    MultiFieldQueryParser
    可能对您有好处:要要求每个术语都出现,只需调用

    QueryParser.setDefaultOperator(QueryParser.AND_OPERATOR)
    
    ,虽然有几个版本,但仍然是准确的,对于分析和查询解析的更多信息非常有用

    QueryParser.setDefaultOperator(QueryParser.AND_OPERATOR)