我们想搜索查询字符串的同义词。如果我在同义词文件中有"pm,项目经理"条目。如果我搜索"pm"或"项目经理",我会正确获得结果。
但是当我搜索"项目经理操作"时,Solr没有给出正确的结果,包括"pm"的搜索结果。但是当我调试时,我可以看到它正在将"项目经理"扩展到"pm"
以下是我的配置
<fieldType name="text_jobs_synonym" class="solr.TextField" positionIncrementGap="1" autoGeneratePhraseQueries="true">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="true" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" tokenizerFactory="solr.KeywordTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
</analyzer>
</fieldType>
这是毫米值"2<90%"。
如何处理多术语同义词
使用 edismax 查询解析器来处理用户查询 mith 帮助。
检查此链接