我正在通過instantsearch.js使用範圍滑塊實施搜索過濾器。
滑塊根據每個項目的year
數據列過濾一系列年份。在這個數據庫中,有些項目沒有確切的一年,而是一個「假定的」時期,如「大約十八秒」或「1910年代末」。這意味着對於這些項目來說,過濾不是一年,而是多年。在同一商品上使用多個範圍值搜索
比方說,我希望過濾從1874年到1930年的範圍內的結果,並且在year
字段中有一個「19世紀後半期」的項目。正如你可以說它應該導致匹配,因爲從1851年到1900年的任何一年是正確的這個項目。
我應該如何將這種類型的數據作爲此過濾器範圍的一部分? 我該如何構建此DB的year
列中的數據?
我應該在algolia javascript搜索中使用一些腳本邏輯,而不是使用構造數據或索引的特殊方式嗎?
我在想一個邏輯的,如:
「如果項目的價值不只是數字,將其轉換爲一系列的年 然後檢查這些年的範圍內可以與過濾器相匹配。在 滑塊」
我真的不能告訴如何做到這一點,它看起來有點麻煩,愚蠢的我需要的。我很確定在DB數據設計中這不是一個新問題,所以必須有一個正確的方法來解決它。
我試過四處搜尋,但我甚至不知道如何正確地說出這個東西,我問。如果你有編輯標題的建議,請告訴我!
我正在使用MySQL數據庫以及PHP。
謝謝!你是否告訴我,我可以提供2列說明來搜索這些列值,並在滑塊內提供的值範圍內對它們進行過濾? – Gruber
我在你的用例中挖了一下,不幸的是我們現在提供的範圍滑塊不允許你在同一個滑塊上使用2列。但好消息,小部件應該更新以允許修改。我們的團隊會看看它: https://github.com/instantsearch/instantsearch-ion.rangeSlider/issues/4 這是一個使用情況,使感謝,感謝報告它。 與此同時,您仍然可以使用2個滑塊(開始和結束日期)或數字優化列表。 – Shipow
編輯:我們的團隊只是做了修改,請告訴我們它是否適合你! https://github.com/instantsearch/instantsearch-ion.rangeSlider/commits/master – Shipow