Моето картографиране има 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
}
}
}