Да, действительно, так работает, спасибо.
Не совсем понятно практическое использование анализатора. Есть поле message, которое постоянно пополняется текстовыми данными. На это поле настроен анализатор. Как получать результаты его работы. Например, из текстов я хотел бы получать ключевые слова, чтобы их видеть в визуализациях Kibana.
Не совсем понятно, чего вы хотите достичь. Анализатор используется для того, чтобы текстовое поле разбивать на термы. Например, у вас есть строка
Я изучаю ElasticSearch
и вы хотите на выходе получить термы: "я", "изучаю", "ElasticSearch". Для этого можно использовать стандартный анализатор.
Анализатор НЕ предназначен для того, чтобы из текста (или одного поля mapping'a) получать несколько полей. Например, у вас есть лог сообщение
12-Oct-2018 DEBUG Something happened
с помощью анализатора не получиться это сообщение превратить в три поля типа timestamp (для даты), keyword (для уровня логирования) и text (для сообщения). Для этого нужно либо уже отправлять данные в структурированном формате (используя LogStash или Beats) или же использовать Ingestion возможности ElasticSearch.
Да, спасибо. Я ранее использовал Rosette Ingest Pipeline https://github.com/rosette-api/rosette-elasticsearch-plugin/blob/master/docs/Rosette-API-Plugin-for-Elasticsearch-Doc-Enrichment.md для лингво анализа текстового поля. Подключал этот pipeline в разделе output конфига Logstash-а и в индексе Elasticsearch уже имел поля с keywords, sentiments, entities.
Просто подумал, что то же самое можно было бы реализовать встроенным в Elasticsearch анализатором. Вот и пытался разобраться с ним. Но честно говоря, так и не понял, каким способом его можно применять на практике
Подскажите пожалуйста, как бы можно было решить такую задачу. В поле message есть текст на английском. Я бы хотел дополнительно иметь поле, скажем, words где бы тот же самый текст складывался обработанный английским анализатором stop words, если не ошибаюсь, который бы удалял все слова вида the, from, where, to, a, thanks и так далее из текста из поля messages.
Спасибо.
Я описал, как стоит поступить, если в индексе уже есть данные. Если у вас еще нет индекса, то вам действительно либо нужно посылать два поля в ElasticSearch, либо попробовать воспользоваться https://www.elastic.co/guide/en/elasticsearch/reference/current/copy-to.html.
Если у вас есть в индексе данные и плюс вы хотите продолжить писать в этот индекс, тогда придется сделать и то и другое.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.