我正在使用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
答案 0 :(得分:0)
StandardTokenizer也在-分裂,这就是为什么它与'shirt'相匹配的原因。对于这种情况,您可以将StandardTokenizerFactory替换为ClassicTokenizerFactory。
ClassicTokenizerFactory在-上不分割,因此t-shit与衬衫不匹配。就是说,也许在其他情况下,您会错过StandardTokenizerFactory。
看看docs for tokenizers,稍作尝试,然后决定