【发布时间】:2013-09-13 15:40:22
【问题描述】:
我在获取新的同义词以使用 SOLR 时遇到了一些困难。奇怪的是,分发版附带的 sysnonyms.txt 文件中的示例条目可以正常工作。我添加的任何新内容都没有。
例如,synonyms.txt 有以下示例:
GB、gib、千兆字节、千兆字节
然后我使用上述术语之一查询字段调用“主题”。
主题:中国
主题:gib
等等……
无论我在查询中使用哪些术语,我都会得到与预期相同的结果集。
接下来,我在 synonyms.txt 中添加了以下行:
ibm, i.b.m., 国际商务机器
我确保在 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:i.b.m." 不会返回任何结果。
我做错了什么?
【问题讨论】:
-
好的,我对自己的问题有部分答案。该查询似乎与“i.b.m.”中的“句号”有问题。作为测试,我添加了另一个与 ibm 相关的相关词“bbbbb”,并且有效。现在我只需要弄清楚如何让带有句点的首字母缩写词起作用。有什么建议吗?
标签: solr