Как указать анализатор при создании индекса в ElasticSearch
Я хотел бы указать анализатор, назвать его и использовать это имя в сопоставлении при создании индекса. Я потерян, мой экземпляр ES всегда возвращает мне сообщение об ошибке.
это, грубо говоря, то, что я хотел бы сделать:
"settings": {
"mappings": {
"alfedoc": {
"properties": {
"id": { "type": "string" },
"alfefield": { "type": "string", "analyzer": "alfeanalyzer" }
}
}
},
"analysis": {
"analyzer": {
"alfeanalyzer": {
"type": "pattern",
"pattern":"s+"
}
}
}
}
но это, похоже, не работает; экземпляр ES всегда возвращает мне ошибку, такую как
MapperParsingException[mapping [alfedoc]]; nested: MapperParsingException[Analyzer [alfeanalyzer] not found for field [alfefield]];
Я попытался поставить "analysis"
ветвь словаря в нескольких местах (внутри отображения и т. д.), но безрезультатно. Я думаю рабочая полный пример (который я до сих пор не мог найти) также помог бы мне. Возможно, я упускаю что-то очень важное.
1 ответов
" анализ "идет в блоке" настройки", который идет либо до, либо после блока" сопоставления " при создании индекса.
"settings": {
"analysis": {
"analyzer": {
"alfeanalyzer": {
"type": "pattern",
"pattern": "\s+"
}
}
}
},
"mappings": {
"alfedoc": { ... }
}
вот хороший полный, пример: Пример 1