2016-12-08 77 views
0

可以說我在我的網站上有一個搜索表單,它會生成一個查詢字符串來過濾結果,例如。 mysite/search?field1=value1&field2=value2&field3=value3刪除查詢字符串對,直到返回結果

用戶輸入以下進入搜索領域:

Field 1 = Cat 
Field 2 = Black 
Field 3 = Stray 

給定一個查詢字符串的性質,所有這三個字段的值必須存在於某個項目被搜查,以便它被認爲是一場比賽..對嗎?

有沒有辦法讓'&'成爲'OR',這樣任何匹配的字段都會返回結果。

有沒有辦法匹配最接近的結果? IE瀏覽器。刪除字符串對直到找到匹配,或以某種方式查找下一個最接近的結果。

例如。如果用戶輸入'Cat','Black'和'Stray',並且有一個項目包含所有三個值,則返回該結果(標準響應)。如果沒有包含所有三個值的項目,假設只有一個項目包含'Cat'和'Stray',它表示沒有包含所有三個值的項目,因此它會查找兩個字段值匹配項?

高興地考慮任何想法,以防止「找不到物品」,並至少呈現一些東西而不是什麼。

回答

0

這取決於您用於過濾的內容,但總體思路是,在過濾數據後,檢查數據是否爲空,如果是,則刪除一個過濾器,再次進行過濾。像這樣的例如:

result = filter(data,filters); 
while(!result || filters.length > 0){ 
    filters.pop(); 
    result = filter(data, filters); 
} 

不工作的代碼,只是一般的想法。

+0

謝謝格雷,我會玩這樣的東西,看看我想出了什麼。 – Bevels

相關問題