ElasticSearch: изменение индексированной версии текста

#ruby-on-rails #elasticsearch

#ruby-on-rails #elasticsearch

Вопрос:

Прежде чем текст в поле будет проиндексирован, я хочу запустить над ним код для его преобразования, в основном, что здесь происходитhttps://www.elastic.co/guide/en/elasticsearch/reference/master/gsub-processor.html (но эта функция еще не запущена).

Например, я хочу иметь возможность преобразовать все . в поле в - для индексированной версии.

Есть какие-нибудь советы? Делаем это в elasticsearch-rails.

Ответ №1:

Используйте char_filter, где вы заменяете все . на - , но это изменит символы индексированных терминов, не _source само по себе. Что-то вроде этого:

         "char_filter" : {
            "my_mapping" : {
                "type" : "mapping",
                "mappings" : [
                  ". => -"
                ]
            }
        }
  

или используйте Logstash с mutate и фильтром gsub для предварительной обработки данных перед отправкой в Elasticsearch. Или вы делаете это в своем собственном индексаторе (что бы это ни было).