【问题标题】:solr: Exact search returns correct match but Fuzzy returns no matchessolr:精确搜索返回正确匹配,但模糊返回不匹配
【发布时间】:2012-04-30 00:25:42
【问题描述】:

我的本​​地机器上有一个 Solr 实例,我正在通过浏览器中的管理界面访问它。 Solr 的实例在非模糊搜索中正常工作(我每天都广泛使用它)。

数据库中的一条记录是我自己,其中有一个名字字段 Barnaby 和一个姓氏字段 Dawson。另一条记录是 Marcus Downing,带有适当的名字和姓氏字段。这里的大写和写的完全一样。数据库中还有十几个姓唐宁的人,姓道森的人也有类似的数字。在我感兴趣的所有记录上,还有另一个字段 IsHistorical 设置为 false。

这是我使用粗略匹配数(精确和不精确)执行的搜索。

IsHistorical:false AND Surname:downing

许多匹配,其中许多是精确的。

IsHistorical:false AND Surname:dawson

很多匹配,其中大部分是精确的。

IsHistorical:false AND Surname:downing~

很多匹配没有是准确的。

IsHistorical:false AND Surname:dawson~

很多匹配,其中很多是精确的

IsHistorical:false AND Forename:barnaby AND Surname:dawson~

一个匹配的结果是正确的

IsHistorical:false AND Forename:marcus AND Surname:downing~

根本没有匹配项

我使用姓氏和名字的首字母大写的所有组合执行了最后两次搜索,结果没有发现差异。我已确保 page 返回的行数足够大,可以查看所有返回的结果。查询是手动输入的。

我的问题是:为什么模糊搜索修饰符在搜索“downing”时阻止我获得完全匹配,但在搜索“dawson”时却没有?

我的最终目标是以模糊的方式编写匹配多个字段的查询,包括名字和姓氏。

【问题讨论】:

    标签: solr fuzzy-search


    【解决方案1】:

    我的假设是您在 surname 字段的架构中具有词干过滤器,并且 downing 变为 down

    Fuzzy on down 会给你这种结果。我认为最好删除该字段的词干过滤器。

    【讨论】:

    • 谢谢!我关闭了词干,这解决了这个问题。为了任何阅读本文的人的利益,请注意词干过滤器工厂没有明显的名称。它们包括“EnglishPorterFilterFactory”、“SnowballPorterFilterFactory”、“PorterStemFilterFactory”和“KStem”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    相关资源
    最近更新 更多