/ / Как да използвам различни анализатори в Elasticsearch в зависимост от документа за вмъкване? - java, анализатор, еластично търсене, еластично търсене-ява-апи

Как да използваме различни анализатори в Elasticsearch в зависимост от документа за вмъкване? - java, анализатор, elasticsearch, elasticsearch-java-api

Моето картографиране има 4 низови полета:

  • "Име"
  • "Информация"
  • "Език"
  • "Жанр"

и 4 персонализирани анализатора:

  • "English_custom_analyzer"
  • "French_custom_analyzer"
  • "Spanish_custom_analyzer"
  • "Arabic_custom_analyzer"

Искам да мога да определя анализатора, който да използвампри поставяне на документа с помощта на езиковото поле. Така че, ако езикът е английски, искам да използвам английския анализатор за полето за документи и ако езикът е френски, искам да използвам френския аналайзер.

Опитах се да създам допълнително поле, наречено,"language_name_analyzer", попълнете това поле с името на анализатора в момент на поставяне и задайте името на анализатора на "language_name_analyzer". Но получавам тази грешка:

Cause: org.elasticsearch.index.mapper.MapperParsingException: Analyzer [language_name_analyzer] not found for field [datacontent_onair_title]

Благодаря ти

Отговори:

1 за отговор № 1

На първо място, бих препоръчал да преразгледа използването на тази функция, тъй като тя е бил премахнат от следващата голяма версия на elastsearch 2.0.

Ако все пак искате да го използвате, трябва да посочите пътя към language_name_analyzer поле в картографирането:

{
"type1" : {
"_analyzer" : {
"path" : "language_name_analyzer"
},
"properties": {
//// your other fields
}
}
}