Подтвердить что ты не робот

Как указать анализатор при создании индекса в 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" словаря в несколько мест (внутри отображения и т.д.), но безрезультатно. Я думаю, что рабочий полный пример (который я не мог найти до сих пор) тоже помог бы мне. Наверное, мне не хватает чего-то довольно элементарного.

4b9b3361

Ответ 1

"анализ" идет в блоке "настройки", который идет либо до, либо после блока "сопоставлений" при создании индекса.

"settings": {
    "analysis": {
        "analyzer": {
            "alfeanalyzer": {
                "type": "pattern",
                "pattern": "\\s+"
            }
        }
    }
},
"mappings": {
    "alfedoc": { ... }
}

Здесь хороший полный пример: Пример 1