#elasticsearch #kibana #kibana-7 #elasticsearch-analyzers
Вопрос:
Я создал визуализацию элементов управления Kibana (Список параметров с включенными многозначными и динамическими параметрами) на своей панели мониторинга. Поиск дает результаты только в том случае, если значения чувствительны к регистру. Я читал, что чувствительность к регистру зависит от маркера свойства во время ввода в elasticsearch, что имеет смысл.
Поэтому я настроил свой индекс с помощью следующего маркера в нижнем регистре:
"settings": {
"number_of_shards": 1,
"analysis": {
"analyzer": {
"lowercaseAnalyzer": {
"tokenizer": "keyword",
"filter": "lowercase"
}
}
}
}
...
"mappings": {
"_source": {
"enabled": true
},
"properties": {
"schname": {
"type": "text",
"analyzer":"lowercaseAnalyzer",
"fields": {
"raw": {
"type": "keyword"
}
}
},
...
Однако, когда я переиндексирую свои данные, я не вижу никаких изменений в поведении поиска визуализации элементов управления. Это все еще чувствительно к регистру. Может ли это быть schname
связано с тем, что я использую многополевое поле? Визуализация элементов управления настроена для использования этого schname.raw
поля.
Я также попытался настроить свой анализатор следующим образом, но безрезультатно.
"tokenizer": "whitespace",
"filter": [ "lowercase" ]
По общему признанию, это мое первое предприятие в области анализаторов, поэтому я просто пытаюсь понять, где я ошибаюсь.
Ответ №1:
похоже, что он должен работать на schname
поле, так как именно там вы размещаете анализатор нижнего регистра. если вы поместите его в schname.raw
поле, вам нужно будет использовать точный регистр, так как именно это и есть сопоставление ключевых слов — https://www.elastic.co/guide/en/elasticsearch/reference/7.14/keyword.html
есть также проблема, связанная с этим — https://github.com/elastic/kibana/issues/50171
Комментарии:
1. Это имеет смысл, хотя я вижу только schname.raw (против schname) в качестве доступного поля для элемента управления. Интересно, ограничивается ли это полями ключевых слов?