gpt4 book ai didi

mysql - 如何在 Rails 中集成 "Did you mean"功能?

转载 作者:IT王子 更新时间:2023-10-29 00:34:18 25 4
gpt4 key购买 nike

您如何实现“您的意思是:”就像 Google 在某些 search queries 中所做的那样?

PS:我在我的产品中使用了 sphinx。你能建议我如何实现这个吗?对具有此功能的其他一些搜索引擎的任何指南或建议都是最受欢迎的。我正在使用 rails2.3.8,如果有帮助的话

一个解决方案可以是:

制作一个包含已知“关键字”或“短语”的字典,如果在搜索操作中没有找到任何内容,则在该字典中运行二次查询。每当创建可搜索条目(例如博客文章或用户名)时更新该字典。

  • query = "supreman"

  • dictionary = ["superman", "batman", "hanuman"...](在数据库表中)

  • 搜索(查询)

  • 如果没有结果,则

在字典中搜索(其中“关键字”LIKE 查询或“短语”LIKE 查询)=> “superman”

检查 sphinx 或 solr 文档。他们可能会更好地实现此“喜欢”查询,该查询会返回 % 匹配。

  • 显示 -> 您是说“超人”吗?

但关键是如何让它变得高效?

最佳答案

看看 Damerau-Levenshtein距离算法。它计算两个字符串之间的“距离”,并确定将一个字符串转换为另一个字符串需要多少步。步数越少,两根弦越近。

This文章展示了作为 MySQL 存储函数实现的算法。

该算法比 LIKE 或 SOUNDEX 好得多。

我相信 Google 使用众包数据而不是算法。即,如果用户键入 abcd,单击后退按钮,然后立即搜索 abd,那么它会在两个搜索词之间建立关系,因为用户对结果不满意。一旦您进行了非常大的社区搜索,就会出现这种模式。

关于mysql - 如何在 Rails 中集成 "Did you mean"功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12856897/

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