簡體   English   中英

傳遞AWS Cloudsearch查詢的特定退貨順序

[英]Passing in specific return order for AWS Cloudsearch query

有沒有一種方法可以告訴cloudsearch查詢我要以特定順序返回匹配結果?

我已經在Cloudsearch中填充了“產品”。 對於每個用戶,我都有一個預定義的訂單,希望這些產品出現。 用戶可以按多個字段過濾產品,這將調用Cloudsearch並一次返回10個匹配項(ajax加載分頁結果)

我怎樣才能告訴Cloudsearch,一旦找到這些匹配項,我希望以特定客戶的預定義順序返回這些匹配項?

好的,因此無法為每個用戶建立排名索引,並且我假設排名是任意的,而不是可以在CloudSearch排名表達式中表達的內容。 在您設置的約束范圍內,我認為沒有很好的方法可以做到這一點。

我能想到的最好的方法是獲取查詢的所有結果 ,然后根據數據庫中的排名對它們進行排序。 CloudSearch相當快,您應該能夠請求幾千個結果集(在我的40k文檔索引中,返回1000個結果集花費了大約400毫秒)。 然后,您必須根據它們在數據存儲區中的排名對它們進行排序。 感覺很浪費,但是對於您正在處理的約束,這可能是最好的選擇。

或者,您可以從數據庫中獲取該用戶的前n項 ,然后用該用戶的查詢命中CloudSearch,檢查結果中的前n項(這實際上可能是查詢的一部分),並在搜索結果中分頁直到您已經找到了足夠的數據(在您的情況下為10個)顯示給用戶。

鑒於上述解決方案的效率低下,我強烈建議您重新評估您的約束條件:對搜索結果進行排名應真正由搜索引擎負責 分離責任,創建一個混亂的交接,理想情況下不應該存在。 也許您可以提出一個第三方排名算法的替代品,該算法可以表達為排名表達; 也許您可以通過數據庫查詢進行過濾,而不是使用cloudsearch。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM