" Разработка индекса в Elasticsearch так, чтобы" & "и" и "в запросе возвращали один и тот же результат "
Как мы можем заставить Elasticsearch возвращать те же результаты, независимо от того, был ли поиск выполнен с " и " в качестве строки запроса или с амперсандом " & ".
Например, существует запрос для поиска всех названий фильмов, содержащих в своих именах " и / & ".
- г. И миссис Смит
- Джек и Джилл
- Abc and Def & ghi
- Пустышка
Таким образом, в этом случае не должно иметь значения, если поиск выполняется с "и" или "&" в запросе, должен возвращать 1,2,3.
Дамп из моего Kibana Dev Tool
PUT test_index
{
"settings": {"number_of_replicas": 0,
"number_of_shards": 1
},
"отображения": {
«Документ»:
{
"свойства": {
"MOVIE_NAME": { "Тип": "текст"}
}
}
}
}
PUT / test_index / doc / 1
{
"movie_name": "Мистер и миссис Смит"
}
PUT / test_index / doc / 2
{
"movie_name": "Джек и Джилл"
}
PUT / test_index / doc / 3
{
"movie_name": "Abc and Def & ghi"
}
PUT / test_index / doc / 4
{
"movie_name": "Dummy Name"
}
Оба приведенных ниже запроса должны возвращать один и тот же результат
GET test_index / _search
{
«размер»: 20,
"запрос": {
"матч": {
"movie_name": "&"
}
}
}
GET test_index / _search
{
«размер»: 20,
"запрос": {
"матч": {
"movie_name": "and"
}
}
}