我的应用程序中有 solr,我需要涵盖以下场景:我有一个包含三个值的字段:咖啡店甜甜圈店体育用品店
当我搜索“咖啡店”时,我得到所有具有上述任何值的文件的问题。原因是所有人都有“商店”。我正在尝试更改此搜索行为,以便当我搜索“咖啡店”时,我只获得具有“咖啡店”的文档,而当我搜索“商店”时,我会获得具有上述所有值的文档。下面是我的 fieldType 定义
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<filter class="solr.ReversedWildcardFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory"
splitOnNumerics="0"
stemEnglishPossessive="1"
splitOnCaseChange="1"
generateWordParts="1"
generateNumberParts="1"
catenateWords="1"
catenateNumbers="1"
catenateAll="0"
preserveOriginal="1"
protected="protwords.txt"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true" />
<filter class="solr.HunspellStemFilterFactory"
dictionary="en_US.dic"
affix="en_US.aff"
ignoreCase="true" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.TrimFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory"
splitOnNumerics="0"
stemEnglishPossessive="1"
splitOnCaseChange="1"
generateWordParts="1"
generateNumberParts="1"
catenateWords="0"
catenateNumbers="0"
catenateAll="0"
preserveOriginal="1"
protected="protwords.txt"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true" />
<filter class="solr.HunspellStemFilterFactory"
dictionary="en_US.dic"
affix="en_US.aff"
ignoreCase="true" />
</analyzer>
</fieldType>
谢谢你