我正在使用 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
假设我的交易者模型中有两个交易者。有“格兰芬多礼堂”和“拉文克劳礼堂”之分。当我在开发中使用“Hall”进行搜索时,我得到了这两个交易者。在生产中部署后,对于相同的查询字符串,它只返回第一个交易者。这是不对的。其实问题出在哪里?