Мы создаем поисковую машину с elasticsearch, чтобы использовать стажера в нашей компании. Мы используем одно поле ввода, в которое пользователи могут вводить свои поисковые слова (например, Google). Таким образом, должна быть возможность искать слова одного типа, разделенные пробелами.
Все работает отлично, но у нас есть некоторые проблемы с именами… Если мы ищем «Tim Van De Velde», нет результатов для «Tim vandevelde», и это должно быть возможно. Имейте в виду, что мы хотим сохранить пробелы между словами, чтобы использовать наш оператор и, и что мы не хотим, чтобы многие результаты были неправильными.
Любые мысли или идеи, как мы могли бы сделать это возможным?
Взгляните на наш запрос:
"filtered": {
"query": {
"bool": {
"should": [
{
"multi_match": {
"type": "most_fields",
"query": "Tim Van De Velde",
"operator": "and",
"boost": 1,
"fields": [
"fullname",
"alias",
"name"
]
}
} ,
{
"multi_match": {
"type": "most_fields",
"query": "Tim Van De Velde",
"operator": "and",
"fields": [
"fullname",
"alias",
"name"
],
"boost": 0.8,
"fuzziness": 1
}
}