我已经为我的 Rails 3.0 应用程序安装了 Solr 和 Sunspot gem。
我的目标是进行模糊搜索。例如,我希望搜索词“Chatuea Marguxa”被发现为“Château Margaux”。
实际上,只找到了完全相同的单词,所以模糊根本不起作用。
我的模型:
searchable do
text :winery
end
我的控制器:
search = Wine.search do
fulltext 'Chatuea Marguxa'
end
我尝试使用 ngram 的 solr 模式:
<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 响应。(当然在重新索引之后)。
我做错了什么?