【发布时间】:2013-04-24 10:59:41
【问题描述】:
我已经为我的 Rails 3.0 应用安装了 Solr 和 Sunspot gem。
我的目标是进行模糊搜索。 例如,我希望搜索词“Chatuea Marguxa”被发现为“Château Margaux”。
其实只找到完全相同的词,所以模糊根本没用。
我的模特:
searchable do
text :winery
end
我的控制器:
search = Wine.search do
fulltext 'Chatuea Marguxa'
end
我尝试过的 solr 模式,带有 ngram:
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15"/>
</analyzer>
我也试过双变音:
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/>
</analyzer>
在这两种情况下,我都得到了 0 响应。 (当然是在重新索引之后)。
我做错了什么?
【问题讨论】:
-
在您的情况下,语音过滤器不够用,您需要进行拼写检查/更正
-
我可以使用什么工具呢?我不明白。
标签: ruby-on-rails solr sunspot fuzzy-search