@Folzy

Как я могу сделать поиск по нескольким значениям в js используя elasticsearch?

Здравствуйте, прошу, помогите . Я имею базу данных в которой хранятся все города мира, и так же в ней есть отдельные 2 таблицы - admin1Codes и admin2Codes, они хранят уже коды региональных мест, типо республика или регион. Стоит такая задача: у меня на сайте есть поиск, туда я могу ввести чисто город, и он мне выдаст информацию о нем из базы данных, но я так же могу ввести например Makhachkala Russia Dagestan ( в любом порядке могу, могу например Russia Makhachkala Dagestan и т.д. ), и тут уже возникают сложности, как я могу определить что тут город, что страна а что тут региональное название? Я для поиска использую elasticsearch. Так же одно примечание: я когда начинаю вводить город, ввел например New Y и он мне выдаст New York потому что строка New Y содержится в ней, это я сделал с помощью
prefix: {
    "alternatenames.keyword": "Makhachkala Russia Dagestan"
}

Но уже с строкой Makhachkala Russia Dagestan как вы понимаете это не сработает. Есть какие-нибудь идеи как можно это решить? Буду очень благодарен!

Так же стоит учитывать что город и страна могут состоять не из одного слова, например New York United States
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
2ord
@2ord
Можно иметь несколько полей для каждого вида сущности.

Можно в строке поиска указывать с ключевыми словами, напр.:
г. Новохрюпинск
рег. Апигени
обл. Визтоль
шт. Бараханд

Тогда, определив что за сущность, искать по соответствующему полю.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы