如何在不存在所有令牌的Sunspot Solr(rails)中返回搜索结果?

时间:2015-02-20 05:12:03

标签: ruby-on-rails search solr sunspot-rails

我在我的rails应用中运行 Sunspot Solr 。我正在使用它来让用户搜索不同的文章"在:name属性上使用全文搜索。在这个时间点,我配置了Sunspot Solr并且它运行良好。

但是,当我搜索dog mouse cat时(例如),它只会返回包含所有关键字的文章。如何配置Solr以显示诸如“狗与猫”之类的文章。 - 上面的查询示例中只包含3个搜索关键字中的2个?

模型中的searchable块:

searchable do
    text :name
end

我目前用于全文搜索的schema.xml 如下所示:

<fieldType name="text" class="solr.TextField" omitNorms="false">
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.PorterStemFilterFactory"/>
  </analyzer>
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" tokenizerFactory="solr.StandardTokenizerFactory"/>
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
    <filter class="solr.PorterStemFilterFactory"/>
  </analyzer>
</fieldType>

1 个答案:

答案 0 :(得分:0)

Model.search do
  fulltext text do
    fields :name
    minimum_match 2
  end
end