我有一個索引產品是Solr。我需要爲每個客戶提供定製的產品清單,這樣我必須爲每個客戶排除一些特定的產品。 目前,我將這種排除產品的客戶關係存儲在SQL數據庫中,然後使用術語查詢在Solr中對其進行篩選。有沒有一種方法可以將這種關係存儲在Solr中,這樣我就不必每次都從SQL計算排除列表。如何在運行時從Solr過濾大量IDS
的東西非常相似,我們可以在elasticsearch使用https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html
可能的方式做,我能想到Solr中做的:
保持在產品指數本身,和過濾的客戶名單在那。但是如果我必須重新索引所有文檔,這將會非常痛苦。這個列表也可能很大。
我能想到的另一種方式是維護一個獨立的核心,用於保存每個客戶的文檔並排除product_id,並使用{!join}執行加入以過濾掉客戶的產品。這是一個可擴展的解決方案嗎?
應該是什麼Solr中存儲這類數據的理想方法。
感謝這裏的響應。我想我只會繼續使用SQL方法。將過濾使用術語查詢的ID。 –