首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lucene反向短语搜索

Lucene反向短语搜索
EN

Stack Overflow用户
提问于 2014-08-21 15:46:41
回答 2查看 389关注 0票数 0

如果我想搜索关键词"Error Message“,lucene能借给我匹配"Error Message”和"Message Error“的结果吗?目前,我得到的结果只与“错误信息”匹配。我正在使用Standard Analyser和Query Parser来搜索关键字。

EN

回答 2

Stack Overflow用户

发布于 2014-08-21 16:45:47

使用斜率> 0的PhraseQuery。从javadoc

设置查询短语中词之间允许的其他词的数量。如果为零,则这是一个精确的短语搜索。对于较大的值,其工作方式类似于内部或近端运算符。斜率实际上是一个编辑距离,其中的单位对应于查询短语中术语的移位。例如,要切换两个单词的顺序需要两次移动(第一次移动将单词放在另一个单词的顶部),因此要允许对短语进行重新排序,斜率必须至少为两个。

更精确的匹配比更草率的匹配得分更高,因此搜索结果按准确度排序。

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

票数 1
EN

Stack Overflow用户

发布于 2014-08-21 15:51:20

除了搜索"Error Message“或"Message Error”之外,没有任何方法可以做到这一点。

但是如果你搜索

代码语言:javascript
复制
Title:(Error AND Message)

然后,您将获得标题与"Error“和"Message”匹配的所有内容。

尽管,有一个关键点:如果你正在以编程方式构造一个Lucene查询,你真的不应该使用QueryParser。您应该使用QueryBuilder从结构上构造它。QueryParser仅用于用户可能在应用程序中键入的人工生成的查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25420917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档