Dynamische Änderung der Synonyme für ElasticSearch

Meine Synonyme werden in einer Datenbank gespeichert. Wenn sich die Synonyme in der Datenbank ändern, möchte ich alle Werte im Index aktualisieren, die sich aufgrund der Änderung der Synonyme ändern können.

Es gibt zwei Teile, an die ich denken kann. Erstens, herauszufinden, welche Dokumente neu indiziert werden müssen. Zweitens: Finden Sie heraus, wie Sie ElasticSearch mitteilen, dass sich die Synonyme geändert haben. Ich habe Probleme mit dem zweiten, der ElasticSearch mitteilt, dass sich die Synonyme geändert haben.

Eine ähnliche Frage wurde gestellt - sieheÄndern Sie dynamisch elasticsearch Synonyme - Aber als ich die Antworten in dieser Ausgabe gelesen habe, war ich nicht in der Lage herauszufinden, was ich brauche.

Derzeit sieht meine Konfigurationsdatei ungefähr so ​​aus:

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

Meine Idee war, etwas wie das Folgende zu tun:

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

aber das scheint nicht zu tun, was ich will. Das heißt, die Indexeinstellungen werden nicht aktualisiert, soweit ich das beurteilen kann.

Ist das, was ich versuche, möglich? Und wenn ja, weißt du, was ich falsch mache?

Ich bin mir auch ziemlich sicher, dass ich dies durch die Aktualisierung der Synonymdatei zum Laufen bringen könnte (wenn ich eine Datei verwenden muss), aber das ist etwas komplizierter und etwas, das ich vermeiden möchte.

Vielen Dank für Ihre Hilfe, Eric

Antworten auf die Frage(4)

Ihre Antwort auf die Frage