首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让Lucene评分来计算未在搜索词中指定的单词?

如何让Lucene评分来计算未在搜索词中指定的单词?
EN

Stack Overflow用户
提问于 2015-04-21 07:24:46
回答 1查看 30关注 0票数 1

我问的问题可能有一个名字,它与贝叶斯统计有关。

我有一个街道地址数据库,我正在使用Lucene来匹配用户输入的地址(如果您需要一个类比,假设我在Google Maps工作)。

假设“西北大道”和“西北海岸大道”都是有效的街道名称,那么在搜索“0.001^0.001西北大道”时,我如何让Lucene将"2000西北大道“的得分高于"1000西北海岸大道”呢?

1000^0.001意味着,数字应该用来打破平局,但在其他情况下,匹配街道名称比将正确的数字与错误的街道匹配更重要。

不幸的是,在本例中,1000^0.001导致错误的匹配(北岸)先于正确的匹配。

什么评分算法可以使Lucene在搜索中未能指定索引术语时向下调整分数,其中罕见术语的权重高于普通术语?

EN

回答 1

Stack Overflow用户

发布于 2015-04-21 15:44:14

我会通过仔细地对街道名称进行标记化来解决这个问题。例如,您可以这样做:

  1. 将数字和街道名称提取到两个不同的字段street_nb和street_nm中。在查询中使用两个子句对它们进行索引,一个是必须以street_nb为目标,另一个是应该。因此,你要确保只匹配街道名称,如果名称匹配,那就更好了。
  2. 除此之外,你还可以做不同的事情,比如使用短语来强制街道名称完全匹配等等。尝试各种变体,直到它给你带来好的结果。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29760190

复制
相关文章

相似问题

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