ElasticSearch: настройка реализации пользовательского анализатора

В настоящее время я оцениваю, можно ли и как перенести устаревший компонент анализатора на основе люцена в режим упругого поиска (0.19.18). Поскольку унаследованный код основан на lucene, я обернул анализатор в es-плагин. Конфигурация анализатора выглядит следующим образом:

index.analysis.analyzer.myAnalyzer.type : myAnalyzer
index.analysis.analyzer.default.type: myAnalyzer
index.analysis.analyzer.default_index.type: myAnalyzer
index.analysis.analyzer.default_search.type: myAnalyzer

Все идет нормально.

curl -XGET 'localhost:9200/_analyze' -d 'Some text'

Возвращает объект, который содержит правильно маркированный текст, но

curl -XGET 'localhost:9200/<name-of-my-index>/_analyze' -d 'Some text'

вернул бы текст, который вообще не был бы маркирован. Очевидно, вместо myAnalyzer применяется только фильтр нижнего регистра. Объекты в индексе также не анализируются правильно.

Отображения индекса выглядят следующим образом (вывод из head-plugin):

mappings: {
item: {
    analyzer: myAnalyzer
    properties: {
        id: {
            type: string
        }
        itemnumber: {
            type: string
        }
        articletext: {
            analyzer: myAnalyzer
            type: string
        }
        sortvalue: {
            type: string
        }
        salesstatus: {
            format: dateOptionalTime
            type: date
        }
    }
}
}

Поскольку я новичок в ES, я не могу понять, в чем причина такого поведения. Есть кто-то с идеей?

1 ответ

Вот как я настраивал собственный анализатор по умолчанию в Elasticsearch.

index:
  analysis:
    analyzer:
      default:
        filter: [lowercase]
        tokenizer: whitespace
        type: custom

Работает как шарм.

Другие вопросы по тегам