7
假設我正在建立一個酒店預訂平臺,並且每個房間記錄都有可用性日曆。常見的搜索標準是按持續時間進行搜索。如果用戶輸入開始日期和結束日期,並且數據庫提取從該持續時間未被佔用的房間。如何在阿爾戈利亞的持續時間搜索
我已經實施了一種非常天真的方法,將被佔用的天數存儲爲數天。
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
,然後在客戶端,我添加以下JavaScript代碼,以交叉檢查,如果這一天是在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();
}
});
所以,這顯然是不這樣做的好方法,我想知道什麼是更好的利用algolia和持續時間搜索?
感謝
我確實相信這是解決您的問題的好方法。可用性搜索總是很難處理。這個解決方案中有什麼讓你感到不安? – Jerska