簡體   English   中英

有沒有辦法動態更新同義詞文件而無需重新啟動Solr服務器?

[英]Is there a way to dynamically update a synonym file without restarting Solr server?

我們知道在conf目錄中有一個synonym.txt文件,每當我找到一些新的同義​​詞時我想更新它...

那么有沒有辦法動態更新該文件而無需重新啟動Solr服務器 ,我的搜索結果是否會考慮新的同義詞?

如果有人有任何想法,請幫助我..提前感謝...

我認為您可以構建自己的SynonymFilterFactory來擴展原始版本並使用自定義FSTSynonymFilterFactory作為委托者。 你的SynonymFilterFactory應該擴展原來的SlowSynonymFilterFactory並調用:

map = loadSolrSynonyms(loader, true, analyzer);

每當你想重新加載同義詞文件。

要在文件發生變化時重新加載文件,可以使用每X時間喚醒一次的監視程序線程,檢查sysnonim文件是否已更改,或者您可以使用某個文件監視程序在文件更改時獲取通知。

Solr提供托管同義詞圖形過濾器來使用REST API管理同義詞(在此示例中通過/solr/collection_name/schema/analysis/synonyms/english endpoint):

<analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.ManagedSynonymGraphFilterFactory" managed="english"/>
    <filter class="solr.FlattenGraphFilterFactory"/> <!-- required on index analyzers after graph filters -->
</analyzer>
<analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.ManagedSynonymGraphFilterFactory" managed="english"/>
</analyzer>

應用同義詞更改需要核心重新加載。 Solr為此提供了一個REST API CoreAdmin API Reload admin/cores?action=RELOAD&core=core-name

RELOAD操作從現有的已注冊Solr核心的配置加載新核心。 當新核心正在初始化時,現有核心將繼續處理請求。 當新的Solr核心准備就緒時,它將接管並卸載舊核心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM