Como alterar dinamicamente sinônimos para ElasticSearch

Meus sinônimos são armazenados em um banco de dados e, quando os sinônimos são alterados no banco de dados, quero atualizar quaisquer valores no índice que possam ser alterados como resultado da alteração de sinônimo.

Há duas partes para isso que eu posso pensar. Um, descobrir quais documentos para re-indexar. Dois, descobrir como dizer ao ElasticSearch que os sinônimos mudaram. Eu estou lutando com o segundo - contando ao ElasticSearch que os sinônimos mudaram.

Uma pergunta semelhante foi feita - vejaAlterar dinamicamente elasticsearch sinônimos - mas ao ler as respostas nessa edição, não consegui descobrir o que preciso.

Atualmente, meu arquivo de configuração é parecido com o seguinte:

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

Minha ideia era fazer algo como o seguinte:

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

mas isso não parece fazer o que eu quero. Ou seja, as configurações de índice não são atualizadas, tanto quanto eu posso dizer.

O que estou tentando fazer é possível? E se sim, alguma ideia do que estou fazendo errado?

Além disso, tenho quase certeza que eu poderia fazer isso funcionar, atualizando o arquivo sinônimo (se eu tiver que usar um arquivo), mas isso é um pouco mais complicado e algo que eu gostaria de evitar.

Obrigado pela vossa ajuda, Eric

questionAnswers(4)

yourAnswerToTheQuestion