Lucene反向短语搜索

时间:2014-08-21 07:46:41

标签: search lucene reverse

如果我想搜索关键字"错误消息" ,lucene能否借给我匹配的结果"错误信息"和"消息错误"。 Currenlty我得到的结果匹配"错误消息"只要。我正在使用标准分析器和查询分析器来搜索关键字。

2 个答案:

答案 0 :(得分:1)

使用带有slop>的PhraseQuery 0.从javadoc

  

设置查询中单词之间允许的其他单词数   短语。如果为零,那么这是一个精确的短语搜索。对于更大   这个值就像一个WITHIN或NEAR运算符。事实上,这是一个污点   编辑距离,其中单位对应于中的术语移动   查询短语不在位置。例如,要切换两个的顺序   单词需要两个动作(第一个动作将单词放在一个上面   另一个),所以为了允许重新排序短语,slop必须在   至少两个。

     

因此,更精确的匹配得分高于更粗略的匹配   搜索结果按精确度排序。

     

默认情况下,slop为零,需要完全匹配。

答案 1 :(得分:0)

除了搜索“错误消息”或“消息错误”之外,没有任何其他方法可以做到这一点。

但是如果你搜索

Title:(Error AND Message)

然后你会得到标题匹配“错误”和“消息”的所有内容。

一个关键点,但:如果您是以编程方式构建Lucene查询,那么您真的不应该使用QueryParser。您应该使用QueryBuilder从结构上构建它。 QueryParser仅适用于用户可能在您的应用程序中输入的人工生成的查询。