【发布时间】:2017-06-21 14:50:30
【问题描述】:
我想使用同义词进行搜索。 所以我在 schema.xml 中定义了一个“同义词”fieldType。
<fieldType name="foo" class="solr.TextField" positionIncrementGap="100">
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.ManagedSynonymFilterFactory" managed="german" />
<!--<filter class="solr.SynonymGraphFilterFactory" ignoreCase="true" expand="true" managed="german" />-->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
这个fieldType被一个字段使用:
<field name="test" type="foo" required="true" />
现在我通过 API 向 Solr (6.5.1) 添加同义词,这样我可以通过 Web 后端更新同义词,例如
curl -X PUT -H 'Content-type:application/json' --data-binary '["mad","angry","insane"]}' "http://localhost:8983/solr/core/schema/analysis/synonyms/german"
这很酷,并且添加按预期工作。 我可以看穿它们:
http://localhost:8983/solr/core/schema/analysis/synonyms/german
我的问题是这需要在它们工作之前重新建立索引,即使我使用的是查询时间而不是索引时间。
是否可以在不重新索引的情况下“即时”管理同义词?
我的印象是,是的,只要我使用查询时间,但这对我不起作用,所以我想我做错了什么?
我是否必须在 API 上使用 synonyms.txt 才能实现这一点?
但是我猜文本文件不会像 API 那样容易维护同义词吗?
感谢阅读和问候
【问题讨论】:
标签: solr