我正在使用Sunspot Solr进行全文搜索。我正在尝试从交易员模型中搜索交易员。以下是可搜索的块:
searchable do
text :name
text :postcode
text :phone
text :phone_alt
text :phone_mobile
end
这里是schema.xml文件。
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="20" side="front"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="20" side="back"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="20" side="front"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="20" side="back"/>
</analyzer>
</fieldType>
以下是控制器代码
search = Trader.search do
keywords params[:q] do
minimum_match 2
end
end
@traders = search.results
假设我的交易员模型中有两个交易员,他们的名字是'Gryffindor Hall'和'Ravenclaw Halls'。当我在开发环境中使用“Hall”进行搜索时,可以找到这两个交易员。但是在生产环境中部署后,对于相同的查询字符串,只返回了第一个交易员,这是不正确的。实际上问题出在哪里?