如何使用太阳黑子实现通配符搜索

Raj*_*pta 3 ruby-on-rails sunspot

任何帮助总是受欢迎我使用太阳黑子与solr但无法找到任何好的解决方案,如何使用太阳黑子进行通配符搜索

如果我搜索8088***

它应该返回所有数字以8088开头而不是228088560

小智 9

在/solr/conf/schema.xml中查找以下代码行:

<fieldType name="text" class="solr.TextField" omitNorms="false">
    ...
</fieldType>
Run Code Online (Sandbox Code Playgroud)

并用以下内容替换它们:

<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.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="20" side="front" />
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StandardFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)

请记住重新启动solr服务器,并在这些更改后重新编制索引

rake sunspot:solr:stop
rake sunspot:solr:start
rake sunspot:reindex
Run Code Online (Sandbox Code Playgroud)