場景: 我有很多項目。每個項目都有很多模塊&每個模塊都有其說明。使用Lucene SpellChecker的有條件建議
現在我正在提供模塊描述的搜索。對於拼寫錯誤的單詞的建議,我使用了SpellChecker API。我用LuceneDictionary創建了簡單的字典。問題是因爲索引沒有任何參考項目ID,建議來自所有模塊,因爲我只想在某個項目中搜索。我怎樣才能正確創建這種情況下的索引?
一些更多的信息:我使用Hibernate Search的
場景: 我有很多項目。每個項目都有很多模塊&每個模塊都有其說明。使用Lucene SpellChecker的有條件建議
現在我正在提供模塊描述的搜索。對於拼寫錯誤的單詞的建議,我使用了SpellChecker API。我用LuceneDictionary創建了簡單的字典。問題是因爲索引沒有任何參考項目ID,建議來自所有模塊,因爲我只想在某個項目中搜索。我怎樣才能正確創建這種情況下的索引?
一些更多的信息:我使用Hibernate Search的
指數拆分
這看起來像一個非常適合的Hibernate Search的分片功能:10.5. Sharding indexes。
基本上你可以讓每個項目都有其專用的索引。
默認情況下,查詢將運行在所有指標的「聚合視圖」,但你可以,如果你使用較低級別IndexReader API(只需打開由全名的IndexReader - 包括碎片ID)打開特定指數或申請您的查詢過濾器:請參閱enter link description here。
多租戶
另外,如果你的「項目」代表這就需要彼此完全隔離不同的數據集,你可以看看Hibernate ORM's native support for multi-tenancy。
Hibernate Search works fine with ORM's multi-tenancy feature爲好,但在這種情況下,人們會想,如果你打開一個本地的IndexReader你仍然會從所有租戶訪問所有數據,以多租戶與分片相結合,否則。