首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于Lucene的问题

关于Lucene的问题
EN

Stack Overflow用户
提问于 2015-05-01 14:14:27
回答 1查看 36关注 0票数 1

我正在研究Lucene,并对一些问题提出了一些问题,这些问题给了我不同的结果。

这三个查询是:

Q1 =“Java8经验证是兼容的”

Q2 =“Java8未验证为兼容”

Q3 =“Java8未验证为兼容”

我试图理解为什么Q1和Q2的结果如此相似,但与Q3不同。

还有人能告诉我这是什么类型的信息检索问题吗?我知道这与自然语言、IR索引和查询语言有关。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-01 17:01:38

我猜您使用的是StandardAnalyzer和默认的(英语)停止集或EnglishAnalyzer

不管是哪种方式,停止言语都是这里应该关注的问题。"is“、"not”、"to“、"be”、"as“和"a”都是停止词,因此有效地从索引中删除。

虽然它们不再是可搜索的,但已删除的停止词确实会留下一个位置增量,所以分析后的表示方式实际上类似于

  • Q1 =“Java8_验证__兼容”
  • Q2 =“Java8_验证__兼容”
  • Q3 =“Java8_ verified _ compatible”

其中an _表示一些已消除的、不可搜索的词组。因此,基于这种表示,经过分析,Q1和Q2实际上是相同的查询。然而,Q3的位置增量却少了一个,这意味着它期望在“验证”和“兼容”之间少出现一个单词(或标记)。

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

https://stackoverflow.com/questions/29988520

复制
相关文章

相似问题

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