阻止solr在查询中使用特定的同义词

时间:2016-10-11 09:32:01

标签: solr synonym

我正在尝试用“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。

0 个答案:

没有答案