Я пытаюсь обновить с помощью ElasticSearch 0.90.3 до 2.0 и столкнуться с некоторыми проблемами. Люди, которые изначально настроили и настроили ES, больше не доступны, поэтому я собираюсь об этом с очень небольшим знанием о том, как это работает.Реализация пользовательского фильтра ElasticSearch для всех запросов
Они сконфигурировали ES 0.90.3 для использования ElasticSearch-ServiceWrapper и Tire, кроме того, есть только несколько небольших изменений конфигурации.
По большей части обновление прошло гладко, я заменил информацию об установке в процессе развертывания крышки, чтобы теперь установить ES 2.0 вместо 0.90.3, и эта служба подходит, однако я не могу получить частичное совпадение, происходило прежде, чем работать. Мне нужно настроить стандартный фильтр, который применяется ко всем поисковым запросам, которые будут искать все поля, используя частичные совпадения. Я выполнил множество поисковых запросов Google, и это самое близкое, что я могу придумать, но он по-прежнему не возвращает частичных совпадений.
index:
settings:
analysis:
filter:
autocomplete_filter:
type: edge_ngram
min_gram: 2
max_gram: 32
analyzer:
autocomplete:
type: custom
tokenizer: standard
filter: [ lowercase, autocomplete_filter ]
mappings:
access_point_status:
properties:
text:
type: string
analyzer: autocomplete
search_analyzer: standard
Я надеялся, что не нужно заменить Тир, как бы сделать это обновление гораздо сложнее, но если проблема лежит в запросах и не установка, то я буду идти по этому пути. Это пример запроса, который не возвращает желаемых результатов:
curl -X GET 'http://localhost:9200/access_point_status/_search?from=0&size=100&pretty' -d
'{ "query":
{ "bool":
{ "must": [
{ "match":
{ "_all":
{ "query":
"1925","type":"phrase_prefix"
}
}
}
]}
}
,"sort": [ { "name":"asc" } ]
,"filter": { "term": { "domain":"domain_1" } }
,"size":100,"from":0
}'
Благодаря