如何将Mysql下面的内容转换为solr?我尝试过使用solr联接来实现它,但我不知道如何通过in查询在solr联接中使用多个条件。
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'
)
您不能!Solr不是一个关系数据库,也不是为直接匹配您的结构而设计的。相反,它的设计是为了让事情变得更容易。所以,你必须从你试图找到的东西向后思考,并将你的数据库映射到它。
在您的情况下,粒度似乎是某种可用性。因此,也许这将成为您的Solr文档,其中包含hotelId、RoomId、RoomType、DateAvailable(一天(。然后你基本上会寻找所有类型合适的房间,DateAvailable在你的范围内。可能按RoomId分组。然后,您需要检查该可用性是否是连续的,无论是使用Solr还是在原始数据库中。