我在让新的同义词与 SOLR 一起工作时遇到了一些困难。奇怪的是,分发版附带的 sysnonyms.txt 文件中的示例条目可以正常工作。我添加的任何新内容都没有。
例如, synonyms.txt 有以下示例:
GB,gib,千兆字节,千兆字节
然后,我使用上述术语之一查询字段调用“主题”。
主题:gb
主题:gib
ETC...
无论我在查询中使用哪些术语,我都会得到与预期相同的结果集。
接下来,我在 synonyms.txt 中添加了以下行:
ibm, ibm, 国际商务机器
我确保在 schema.xml 中,字段类型 text_general(字段“主题”使用的字段类型)为索引启用了 SynonymFilterFactory,如下所示:
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
最后,由于我的数据在 mysql 数据库中,然后我使用 dataimport 重新导入了所有数据,假设这是我需要做的重新索引。
但是,虽然对 subject:ibm 的查询会返回多个结果,但对“subject:ibm”的查询不会返回任何结果。
我究竟做错了什么?