Giả sử tôi đang xây dựng nền tảng đặt phòng khách sạn và mỗi bản ghi Phòng đều có lịch khả dụng. Một tiêu chí tìm kiếm phổ biến là tìm kiếm theo thời lượng. Trường hợp người dùng nhập ngày bắt đầu và ngày kết thúc và cơ sở dữ liệu tìm nạp các phòng không bị chiếm đóng từ thời lượng đó.Cách tìm kiếm theo thời gian trong Algolia
Tôi đã thực hiện một cách tiếp cận rất ngây thơ nơi tôi lưu trữ các ngày bị chiếm đóng dưới dạng một mảng ngày.
attribute :occupied_at_i do
array = []
if !occupied_at.empty?
occupied_at.each do |date|
array << Time.parse(date).to_i
end
end
array
end
Và sau đó ở phía khách hàng, tôi thêm mã javascript sau đây để kiểm tra chéo nếu ngày là trong numericRefinement
// Date Filters
$('.date-field')
.on('change', function() {
if(_.every(_.map($('.date-field'), function(date) {return _.isEmpty(date.value) }), function(n) {return n==false;})) {
helper.clearRefinements('occupied_at_i');
var arrayOfDates = addDateFilters();
_.forEach(arrayOfDates, function(n) {
helper.addNumericRefinement('occupied_at_i', '!=', n);
});
showClearAllFilters();
helper.search();
}
});
Vì vậy, nó rõ ràng không phải là một cách tốt để làm điều đó , Tôi tự hỏi điều gì là tốt hơn để tận dụng trên algolia và tìm kiếm theo thời gian?
Cảm ơn
Tôi thực sự tin rằng đây là một cách hay để giải quyết vấn đề của bạn. Tìm kiếm khả dụng luôn khó xử lý. Điều gì làm bạn lo lắng trong giải pháp này? – Jerska