加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 太阳黑子 – 提升文本中早期匹配的记录

发布时间:2020-12-17 02:35:11 所属栏目:百科 来源:网络整理
导读:例如,假设我的数据库中有一条记录有“Hormel Corporation”的记录,我的搜索词就像“Hormel Corned Beef 16 Ounces”.正如我目前的配置一样,最好的结果将是其他记录,即使“Hormel公司”是我正在寻找的.我认为我的问题的解决方案是优先考虑匹配在搜索词中最早
例如,假设我的数据库中有一条记录有“Hormel Corporation”的记录,我的搜索词就像“Hormel Corned Beef 16 Ounces”.正如我目前的配置一样,最好的结果将是其他记录,即使“Hormel公司”是我正在寻找的.我认为我的问题的解决方案是优先考虑匹配在搜索词中最早的记录.我已经阅读了所有的文档,但我无法弄清楚这是如何工作的.

我只有一个字段 – 名字.我想要的记录的名称字段是“荷美尔公司”,但是当我搜索“荷美尔腌牛肉16盎司”时,最好的结果是ISNT“荷美尔公司”的东西,但看似随机的东西,而我的记录寻找结果中的第3或第4位.

非常感谢!

解决方法

我有一个类似的问题需要解决.所以我将数据存储在许多领域:

title
keywords (upto 10 words)
abstract (a paragraph)
text (as long as you like)

对于查询,我在具有不同权重的字段上使用了dismax查询解析器:

title^20
keywords^20
abstract^12
text^1

所以,如果你

>很好地定义您的数据模式
>使用dismax
>确定查询的每个字段的权重

当你搜索“Hormel Corned Beef 16 Ounces”时,标题为“Hormel Corp”的结果将会得到更好的文件,其主体包含“……对于这道菜,我们推荐一罐Hormel Corned牛肉16盎司…”

编辑OP的评论.

OP的事实是:给定n个单词的标题,前n个单词比其余单词更重要.

我建议一个数据模型,其中有两个字段:title_first_words和title.客户端应用程序(抱歉,您不能直接使用DIH)必须从标题中提取前n个单词以存储到title_first_words中,并将完整标题存储到标题中.

对于搜索,您可以将整个查询提供给dismax解析器.查询解析器是偏向于title_first_words的b,例如title_first_words ^ 4 title ^ 1.因此,前n个单词将对给定的搜索产生更大的影响.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读