2015-12-11 61 views
2

我使用阿爾戈利亞搜索作爲我的搜索引擎。但是,在結果中顯示正確的價格時存在問題。價格根據搜索參數進行計算,因此無法在記錄中進行索引。我應該在哪裏計算價格?它是一項上限服務,您可以在其中找到有評級,姓名,公司信息的司機。價格是根據每英里的價格計算的。搜索輸入是從>到位置。謝謝。我使用PHP與JS結果。阿爾戈利亞搜索計算價格

回答

3

也許最好的方法就是調用一個後端API端點來計算Algolia返回結果的「動態」價格。在您收到結果後,我會盡快給您發送AJAX電話,然後再呈現這些結果,以便爲每個objectID的結果設定其價格。

+0

嗨氧化還原,感謝您的快速回答。這也是我的解決方案之一,但是如何過濾(或分類)該價格。開箱即用Angolia具有用於過濾/分類/刻面數據的驚人功能。你會有一個解決方案嗎?我們可以換一些其他服務嗎? – Brian

+0

不幸的是,爲了在搜索時達到最佳性能,Algolia引擎要求您在索引時(靜態)配置排序順序。完全動態排序不受支持,但您可以使用主/從功能部署其中的幾個:https://www.algolia.com/doc/faq/index-configuration/what-are-slaves-indices-and-what -are-their-benefits – redox

1

與動態值排序或篩選的問題是,你需要首先計算出的值...

例如價格=地理距離(從用戶位置到目的地)*率每英里+標誌降

...對於每個文檔,其可以是有效的。

如果您有很多文檔,並且沒有辦法在運行計算之前過濾掉您的選擇,那麼您的自定義排名處理將採用與處理SQL查詢相同的計算工作量(需要全表掃描)。

到目前爲止,Algolia似乎都是關於速度的。他們在索引時建立數據結構來支持這種速度。當前對customRanking的支持僅限於按自定義asc/desc列表進行排序。

你可以實現你的描述使用SolrElasticsearch使用功能評分查詢什麼。


而且因爲你可能沒有超過幾千司機更在其上運行此查詢計算,性能問題(提及第一)可能不是一個大問題。

+0

Downvote?如何反饋? –