solr搜索结果问题(搜索退还T恤的衬衫)

时间:2019-02-07 07:20:33

标签: solr

我正在使用solr 6.3.0从文档中搜索产品,我的问题是当我搜索“男式衬衫”时,它还在结果中搜索“男式T恤”。但是我不希望结果是“男装T恤”,那我该怎么办?

Fields details as given below.


<field name="product_name" type="text_general" indexed="true" stored="true" />

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.EnglishMinimalStemFilterFactory"/>      
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
        <filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.EnglishMinimalStemFilterFactory"/>      
    </analyzer>
</fieldType>


Thanks
abhay

1 个答案:

答案 0 :(得分:0)

StandardTokenizer也在-分裂,这就是为什么它与'shirt'相匹配的原因。对于这种情况,您可以将StandardTokenizerFactory替换为ClassicTokenizerFactory。

ClassicTokenizerFactory在-上不分割,因此t-shit与衬衫不匹配。就是说,也许在其他情况下,您会错过StandardTokenizerFactory。

看看docs for tokenizers,稍作尝试,然后决定