gpt4 book ai didi

ruby-on-rails - Sunspot -- Boost 记录出现在文本早期的匹配项

转载 作者:行者123 更新时间:2023-12-04 03:54:13 24 4
gpt4 key购买 nike

例如,假设我的数据库中有一条记录,其文本为 "Hormel Corporation"我的搜索词类似于 "Hormel Corned Beef 16 Ounces" .就我目前的配置而言,即使 "Hormel Corporation",最高结果将是其他记录。是我要找的那个。我认为我的问题的解决方案是优先考虑在搜索词中最早出现匹配的记录。我已经阅读了所有文档,但我无法弄清楚这可能是如何工作的。

我只有一个字段——名字。我想要的记录的名称字段显示为“Hormel Corporation”,但是当我搜索“Hormel Corned Beef 16 Ounces”时,最上面的结果是 ISNT “Hormel Corporation”,但似乎是随机的,而我的记录寻找是结果中的第 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”的结果对正文包含“...对于这道菜,我们推荐一 jar Hormel Corned Beef 16 Ounces...”的文档得分更高。

    编辑 OP 的评论。

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

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

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

    关于ruby-on-rails - Sunspot -- Boost 记录出现在文本早期的匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101478/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com