9

シノニムはデータベースに保存されており、データベースでシノニムが変更された場合、シノニムの変更の結果として変更される可能性のあるインデックスの値を更新したいと考えています。

これには、私が考えることができる2つの部分があります。1 つ目は、インデックスを再作成するドキュメントを特定することです。2 つ目は、シノニムが変更されたことを ElasticSearch に伝える方法を理解することです。私は2番目のものに苦労しています-シノニムが変更されたことをElasticSearchに伝えます。

同様の質問が寄せられています -動的にelasticsearchシノニムを変更するを参照してください- しかし、その問題の回答を読んでも、何が必要なのか理解できませんでした.

現在、構成ファイルは次のようになっています。

index :
  analysis :
    analyzer :
      myanalyzer :
        filter: [standard, mysynonymfilter]
filter :
  mysynonymfilter :      
    type : synonym
    synonyms : synonyms.txt
    ignore_case : false
    expand : true
    format : solr

私の考えは、次のようなことをすることでした:

curl -XPUT 'http://127.0.0.1:9200/foo/_settings'  -d '
{
    "filter" : {
        "synonym" : {
            "type" : "mysynonymfilter",
            "synonyms" : [
                "cosmos, universe"
            ] 
        }
    }
}
'

しかし、それは私が望むことをしていないようです。つまり、私が知る限り、インデックス設定は更新されません。

私がやろうとしていることは可能ですか?もしそうなら、私が間違っていることは何ですか?

また、同義語ファイルを更新することでこれを機能させることができると確信していますが (ファイルを使用する必要がある場合)、それはもう少し複雑であり、避けたいことです。

助けてくれてありがとう、エリック

4

5 に答える 5

2

同義語ファイルlindstromhenrik/elasticsearch-analysis-file-watcher-synonymをリロードするプロジェクトがありますが、最新バージョンで動作するかどうかはわかりません。おそらく、プラグインを使用してクエリ時に類義語を展開することから始めることができます。クエリ時に、類義語ファイルの変更のために更新する必要があると思われるドキュメントを再インデックスする代わりに、すべての類義語が更新されるためです。

于 2013-08-28T07:13:54.943 に答える
1

ひっくり返しmysynonymfiltersynonym、最後の curl コマンドを実行しました。タイプは である必要がありますsynonym

于 2015-10-29T03:04:45.943 に答える