Solr:重载查询时同义词而不重载集合

时间:2018-12-29 08:49:50

标签: solr solrcloud

我有一个solrcloud设置,其中有多个基于同一配置集的集合。

我拥有的功能之一是用户可以定义自己的同义词,以改善他们的搜索体验,到目前为止,这种体验一直很好。我使用一种自定义方式来执行此操作,基本上结束了将新近义词.txt写入Zookeeper。

该平台最近已经发展壮大,用户拥有几十个Collection,其中必须包含200k或更多非平凡大小的文档。

问题在于,当用户更改同义词时,系统中的自定义代码会自动触发顺序重新加载受同义词更改影响的所有集合。现在(Solr 5.2)总是会造成问题,以致平台变得不稳定,可能需要重新启动Solr,这意味着我们必须访问平台并手动稳定它。现在,我不得不禁用集合的重新加载,以免Solr挂起。

我已经升级到Solr 7.6,希望从5.2版开始的更改可以解决此问题。

同义词仅在查询时使用,因此不需要重新索引任何内容,并且重新加载Collections以使新的同义词生效似乎有点过头。

知道我不会在索引时使用同义词,因此我尝试创建一个QueryTimeSynonymGraphFilterFactory,它每N秒重新加载同义词,这并不起作用,因为搜索有时仅应用新的同义词。我的感觉是,可能有很多搜索者,而我只能为其中之一更改词典。平均而言,似乎四分之一的搜索使用了新的同义词。

是否有一种方法可以全局共享SynonymMap?有没有一种方法可以迫使“搜索者”重新创建?

0 个答案:

没有答案