【发布时间】:2010-12-24 09:59:55
【问题描述】:
我正在寻找一种简单的方法来生成“您的意思是...”风格的搜索提示,当对记录标题的搜索由于标点符号或措辞略有不同而未命中子字符串匹配时Rails 3 应用程序。
最常见的情况是,当用户搜索“Alpha Beta”时,我想为“Alpha: Beta”生成命中,“Alpha and Beta”为“Alpha & Beta”,“The Alpha Beta”为“Alpha Beta”,例如. 前两个示例的相反方向也是如此,因为我当前的子字符串搜索将已经捕获后一种情况。不过,对于上述每个示例,我更愿意在没有特定逻辑的情况下执行此操作,因为可能还有其他我现在想不出的变体。
我也更愿意回避一种解决方案,该解决方案要求我在生成记录时使用替代拼写来流行记录的隐藏字段,然后搜索该字段而不是公开显示的字段。
我猜像 Sphinx/Thinking Sphinx 这样的适当全文搜索可以实现这一点,但我想检查是否有更简单的解决方案来解决我的有限范围问题。理想情况下,通过从记录标题和搜索词以及标题字段中删除常用词(如“the”、“and”和“&”和“:”等标点符号)自动生成此隐藏字段,然后进行搜索。其余单词的实际顺序不一定要在杂耍时匹配('Alpha Beta Gamma' 可以匹配 'Alpha, Beta, Gamma' 但不能匹配 'Alpha, Gamma, Beta')。
【问题讨论】:
标签: ruby-on-rails ruby search