Ruby on rails rails 4 solr搜索复数单词
我有一个文本搜索在我的网站上,用户将张贴一些内容。例如,这是两篇文章的标题Ruby on rails rails 4 solr搜索复数单词,ruby-on-rails,solr,ruby-on-rails-4,sunspot,sunspot-solr,Ruby On Rails,Solr,Ruby On Rails 4,Sunspot,Sunspot Solr,我有一个文本搜索在我的网站上,用户将张贴一些内容。例如,这是两篇文章的标题 1. car for sale 2. cars selling company <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StandardFilterFactory"/> <filter class="s
1. car for sale
2. cars selling company
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
<fieldType name="date" class="solr.DateField" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" omitNorms="true"/>
<fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
<fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
如果我搜索汽车
它会同时显示两个结果,但是如果我搜索汽车
我不会得到任何结果,但我实际上需要两个结果
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
<fieldType name="date" class="solr.DateField" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" omitNorms="true"/>
<fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
<fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
这是我的schema.xml
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
<fieldType name="date" class="solr.DateField" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" omitNorms="true"/>
<fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
<fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
<fieldType name="date" class="solr.DateField" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" omitNorms="true"/>
<fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
<fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
<fieldType name="date" class="solr.DateField" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" omitNorms="true"/>
<fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
<fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
身份证件
文本
似乎您在搜索文档时使用的字段类型中使用了不同的分析器:
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
<fieldType name="date" class="solr.DateField" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" omitNorms="true"/>
<fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
<fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
我假设您正在使用此分析器搜索文档,索引部分缺失
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
<fieldType name="date" class="solr.DateField" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" omitNorms="true"/>
<fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
<fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
您可以在solr admin的分析页面中检查查询:
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
<fieldType name="date" class="solr.DateField" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" omitNorms="true"/>
<fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
<fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
/solr/#/coreX/analysis在用于搜索文档的字段类型中,似乎使用了不同的分析器:
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
<fieldType name="date" class="solr.DateField" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" omitNorms="true"/>
<fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
<fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
我假设您正在使用此分析器搜索文档,索引部分缺失
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
<fieldType name="date" class="solr.DateField" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" omitNorms="true"/>
<fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
<fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
您可以在solr admin的分析页面中检查查询:
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
<fieldType name="date" class="solr.DateField" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" omitNorms="true"/>
<fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
<fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
/solr/#/coreX/分析
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
<fieldType name="date" class="solr.DateField" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" omitNorms="true"/>
<fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
<fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>