Elasticsearch: 1.6.0поиск Elasticsearch не дает никаких результатов, анализаторы могут быть проблемой версия
Я использую elasticsearch в течение последних месяцев (только начала), и теперь я бег в проблемы с ним , Вот некоторая информация о моей базе данных:
Индекс, который я использую, использует динамическое сопоставление по умолчанию (например: я не рисовал его отображение). Мои объекты должны быть без схемы. Кроме того, индекс использует анализатор по умолчанию (я не прикоснулся, что либо), так index/_settings
выглядит следующим образом:
{
"default": {
"settings": {
"index": {
"creation_date": "1441808338958",
"uuid": "34Yn1_ixSqOzp9UotOE_4g",
"number_of_replicas": "1",
"number_of_shards": "1",
"version": {
"created": "1060099"
}
}
}
}
}
Вот меня вопрос: на некоторые значения поля поиска не работает, как ожидалось (Я пришел к выводу, что это из-за анализатора). Пример: поле email
имеет значение [email protected]
; {"query":{"bool":{"must":[{"term":{"user.email":"[email protected]"}}]}}
не будет работать, но значение термина, как только «пользователь» работает (потому что оно каким-то образом его токенизирует, и нет никакого токена с полным адресом электронной почты).
Вот что я хочу: Я хочу, чтобы оба подстановочных полнотекстового поиска (поиск плохого слова в тексте комментария) и строгих поиска (например, по электронной почте, например) на любом поле, то я буду используя bool
и should
либо term
, либо wildcard
.
Проблема в том, что я просто не могу сказать ему «хорошо, на этом поле вы должны использовать X-анализатор», потому что все мои поля являются динамическими.
Что я пробовал: В настройках индекса I PUT-ed: {"analysis":{"analyzer":{"default":{"type":"keyword"}}}}
; не работает: ничего не изменилось (я также не забыл закрыть индекс, прежде чем делать это и открыть его).
Этот вопрос относится даже к анализаторам?
если вы измените настройку [анализатора] (https: //www.elastic.co/guide/en/elasticsearch/guide/current/reindex.html # reindex) вам потребуется переиндексировать документы. – keety