Если ограничить исследования в равной или как операции, вам не нужно анализировать текст.
Измените сопоставление на ключевое слово, чтобы избежать анализа, а затем используйте подстановочный знак или регулярное выражение для поиска в одном полном фрагменте текста.
Для получения более подробной информации см. here.
PUT _template/test
{
"template": "test-*",
"settings": {
"analysis": {
"normalizer": {
"my_normalizer": {
"type": "custom",
"char_filter": [],
"filter": ["lowercase", "asciifolding"]
}
}
}
},
"mappings": {
"_default_": {
"_all": {
"enabled": false
},
"dynamic_templates": [
{
"strings_as_keywords": {
"match_mapping_type": "string",
"mapping": {
"type": "keyword",
"normalizer": "my_normalizer"
}
}
}
]
}
}
}
Вот пример, чтобы создать шаблон для всех новых индексов, начиная с именем тест-, что:
- карту все строки как простые ключевые слова без ограничения символов
- нормализуют данных в вводе для нечувствительных к регистру, нечувствительных к акценту исследований
- удалить поле _all
И, вероятно, вы хотите, чтобы преобразовать запрос на фильтр, чтобы точно соответствовать вашим деталям и не использовать систему оценки
GET /test-1/movies/_search
{
"query": {
"bool": {
"filter": {
"bool": {
"should": [
{
"wildcard": {
"title": "*tar war*"
}
},
{
"wildcard": {
"title": "*ord of the ring*"
}
}
]
}
}
}
}
}
http://stackoverflow.com/questions/41093662/wilcard-search-or- partial-matching-in-elastic-search/41094077 # 41094077 –