我正在尝试用“złoto”(金色)字样来获取文件。 我的查询看起来像这样
"querystring":"content:złoto"
"parsedquery":"SynonymQuery(Synonym(content:złoto content:złoty))"
“złoty”是“złoto”的同义词(更具体的变形),但它也是“zł”(货币)的同义词。单词“zł”在索引内容中更受欢迎,所以当我试图用“złoto”(黄金)获取文档时,我会用“zł”获得更多结果(这不是我正在寻找的)。
我的停用词文件中有“zł”字样,我的字段定义如下所示
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.MorfologikFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</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.MorfologikFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
有没有办法让solr只查找给定单词的特定同义词,例如:
"złoto" => ["złota", "złoty"] but not "zł"(which is synonym for "złoty")
我正在使用solr 6.2.0。