Sie komplizieren die Dinge und versuchen, das MySQL-Konzept in Elasticsearch einzufügen. In diesem Fall müssen Sie Ihre Indexzuordnung (Felder, Datentypen und deren Analysator basierend auf den Suchanforderungen) richtig definieren und Ihre Abfragen entsprechend erstellen.
Ich habe Ihr Beispiel genommen und Ihre Indexzuordnung und Ihr Beispieldokument nicht geändert, aber die Suchabfrage geändert, um zu zeigen, wie es mit Ihren vorhandenen Daten und Anforderungen (funktioniert möglicherweise nicht in allen Fällen, aber Sie bekommen eine Vorstellung) es bringen kann die Suche.
Suchanfrage
{
"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"
]
}
}
}
Das Suchergebnis bringt Ihr Beispieldokument:
"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
}
}
]