我有一个简单的rails 3应用程序,它将餐馆列为训练练习。我希望能够使用餐厅索引页面上的一个文本字段搜索名称和描述。
鉴于查询披萨。比赛应该是
由于:
我如何在rails 3中执行此操作?我是否使用thinking_sphinx,轮胎,sunspot-rails或我的应用程序的自定义查询。
答案 0 :(得分:1)
唯一棘手的是比萨饼/比萨饼店,这是一个叫做词干的问题。
狮身人面像和solr /太阳黑子都支持,但我想你需要告诉他们披萨是披萨店的干。
答案 1 :(得分:1)
删除误报的一种方法是运行用户定义函数(UDF)来计算候选答案与原始字符串之间的编辑距离,并忽略编辑距离过大的答案。
答案 2 :(得分:0)
我找到了一个非常简单的解决方案来满足我的需求。
"%#{"pizza".scan(/./).join("%")}%"
这将创建一个类似于此
的字符串"%p%i%z%z%a%"
然后我在LIKE查询中使用它,我得到了预期的结果。现在剩下的就是解决确定相关顺序的非平凡问题:)
更新:
基于假设较短的字符串最有可能是较长的字符串而不是较长的字符串,找到一种确定相关性顺序的快速而肮脏的方法。
ORDER BY length(sequence) ASC