方案: 我有很多项目。每个项目都有很多模块和每个模块都有其描述。
现在我提供模块描述搜索。对于拼写错误的单词的建议,我使用的是SpellChecker API。我使用LuceneDictionary创建了简单的字典。问题是因为索引没有对项目ID的任何引用,所有模块都提出了建议,我想在某些项目中搜索。如何为这种情况正确创建索引?
更多信息:我正在使用Hibernate Search
答案 0 :(得分:2)
索引分片
这看起来非常适合Hibernate Search的Sharding功能:10.5. Sharding indexes。
基本上,您可以让每个项目都有专用索引。
默认情况下,查询将在"聚合视图上运行"如果您使用较低级别IndexReader API(只需按全名打开IndexReader - 包括分片ID),或者对查询应用过滤器,则可以打开特定索引:请参阅{{ 3}}
<强>多租户强>
或者,如果您的&#34;项目&#34;表示需要彼此完全隔离的不同数据集,您可以查看enter link description here。
Hibernate ORM's native support for multi-tenancy,但是在这种情况下,人们会想要将多租户与分片相结合,否则如果您打开原生的IndexReader,您仍然可以访问所有租户的所有数据。