如何在Mysql下面转换为solr? 我尝试使用solr join来实现它,但我不知道如何通过IN Query在solr join中使用多个条件。
SELECT *
FROM rooms
WHERE
departure_g_date = "2016-08-04T00:00:00Z"
AND returning_g_date = "2016-08-05T00:00:00Z"
AND (room_adults_child = '1-0' OR (room_adults_child = '2-1' AND child_age = 1))
AND hotel_id IN (
SELECT hotel_id
FROM rooms
WHERE
departure_g_date = "2016-08-04T00:00:00Z"
AND returning_g_date = "2016-08-05T00:00:00Z"
AND room_adults_child = '1-0'
)
AND hotel_id IN (
SELECT hotel_id
FROM rooms
WHERE
departure_g_date = "2016-08-04T00:00:00Z"
AND returning_g_date = "2016-08-05T00:00:00Z"
AND room_adults_child = '2-1'
)
答案 0 :(得分:1)
你不能! Solr不是关系数据库,不能直接匹配您的结构。相反,它旨在让事情变得更容易。因此,您必须从想要查找的内容进行反思,并将数据库映射到该数据库。
在您的情况下,粒度似乎是某种可用性。所以,也许这会成为您的Solr文档,包括hotelId,RoomId,RoomType,DateAvailable(单日)。然后你基本上寻找所有正确类型的房间,DateAvailable落在你的范围之间。也许由RoomId分组。然后,您需要使用Solr或甚至在原始数据库中检查该可用性是否是连续的。