Komplikujesz sprawę i próbujesz dopasować koncepcję MySQL do Elasticsearch. W tym przypadku musisz odpowiednio zdefiniować mapowanie indeksu (typy danych pól i ich analizator w oparciu o wymagania wyszukiwania) i odpowiednio zbudować swoje zapytania.
Wziąłem twoją próbkę i nie zmieniłem mapowania indeksu i przykładowego dokumentu, ale zmieniłem zapytanie wyszukiwania, aby pokazać, jak z istniejącymi danymi i wymaganiami (może nie działać we wszystkich przypadkach, ale masz pomysł) może przynieść wyszukiwanie.
Wyszukiwane zapytanie
{
"query": {
"multi_match": { --> note and read about multi_match query
"query": "36695",
"fields": [
"address",
"city_code", --> add more fields if you need to be
"zip_code",
"contact_no"
]
}
}
}
Wynik wyszukiwania przedstawia przykładowy dokument:
"hits": [
{
"_index": "so_mysql_dsl",
"_type": "_doc",
"_id": "1",
"_score": 0.2876821,
"_source": {
"promotion": null,
"image": null,
"name": "Port City Realty",
"city_code": "Mobile",
"services": null,
"promotion_exp_date": null,
"tuesdayopen": null,
"tuesdayclose": null,
"wednesdayopen": null,
"thursdayclose": null,
"@timestamp": "2020-03-13T15:44:45.330Z",
"date_updated": "2020-03-06T00:00:00.000Z",
"mondayopen": null,
"contact_no": "2516891228",
"id": 1941,
"fridayclose": null,
"featured": 0,
"main_cate": 1,
"wednesdayclose": null,
"sundayopen": null,
"state_code": "AL",
"video": null,
"address": "4826 Whispering Oaks Lane",
"user_id": null,
"slug": "2516891228-port-city-realty-mobile-al-36695",
"timezone": null,
"source": "USA Business",
"description": null,
"fridayopen": null,
"price": null,
"saturdayopen": null,
"saturdayclose": null,
"date_added": "2020-03-05T19:00:00.000Z",
"thursdayopen": null,
"@version": "1",
"status": 1,
"mondayclose": null,
"zip_code": "36695",
"private_contact": null,
"location_id": 0,
"sundayclose": null
}
}
]