2016-07-14 24 views
1

據我所知,您只能在Algolia的數字字段上排序,那麼如何有效地設置您的記錄以便根據特定的字符串字段按字母順序返回結果?在Algolia中,如何構建記錄以允許按字母順序排序查詢結果?

例如,假設索引中的每個記錄中有一個名爲「title」的字段,其中包含任意字符串值。你將如何創建一個名爲「title_sort」的同級字段,其中包含一個允許對結果進行排序以使記錄按字母順序排列的標題?是否有一種特別廣爲接受的算法來從「標題」中的字符串創建這樣一個數字?

回答

0

如果您有一個靜態數據集,那麼您可以對數據進行排序並在其上放置索引。只要每次更新索引時都要對數據進行排序。

我也在想,如果你可以處理部分排序,也就是說你可以接受orc < orb,但你需要or < os,那麼你可以派生一個可以使用base64作爲我們的索引。然後,您可以根據您的精確度將其分類爲儘可能多的字符。這只是一個部分排序,但對於您的使用情況可能還可接受。你只需要映射你的base64 - > base10映射來適應排序。

此外,如果您不關心大寫和小寫字母之間的差異,那麼您可以做base26 - > base10。我越想這個,它就越有限,但它可能適用於你的用例。