Bạn đang phức tạp hóa mọi thứ và cố gắng phù hợp với khái niệm MySQL trong Elasticsearch, Trong trường hợp này, bạn cần xác định đúng cách ánh xạ chỉ mục của mình (các loại dữ liệu trường và trình phân tích của chúng dựa trên các yêu cầu tìm kiếm) và theo đó xây dựng các truy vấn của bạn.
Tôi đã lấy mẫu của bạn và không thay đổi ánh xạ chỉ mục và tài liệu mẫu của bạn, nhưng đã thay đổi truy vấn tìm kiếm để hiển thị, cách thức với dữ liệu và yêu cầu hiện có của bạn (có thể không hoạt động trong mọi trường hợp, nhưng bạn có ý tưởng) nó có thể mang lại tìm kiếm.
Truy vấn tìm kiếm
{
"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"
]
}
}
}
Kết quả tìm kiếm mang đến tài liệu mẫu của bạn:
"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
}
}
]