2017-05-27 24 views
0

場景: 我有很多項目。每個項目都有很多模塊&每個模塊都有其說明。使用Lucene SpellChecker的有條件建議

現在我正在提供模塊描述的搜索。對於拼寫錯誤的單詞的建議,我使用了SpellChecker API。我用LuceneDictionary創建了簡單的字典。問題是因爲索引沒有任何參考項目ID,建議來自所有模塊,因爲我只想在某個項目中搜索。我怎樣才能正確創建這種情況下的索引?

一些更多的信息:我使用Hibernate Search的

回答

2

指數拆分

這看起來像一個非常適合的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你仍然會從所有租戶訪問所有數據,以多租戶與分片相結合,否則。