使用Lucene SpellChecker的条件建议

时间:2017-05-27 18:04:58

标签: hibernate lucene full-text-search hibernate-search

方案: 我有很多项目。每个项目都有很多模块和每个模块都有其描述。

现在我提供模块描述搜索。对于拼写错误的单词的建议,我使用的是SpellChecker API。我使用LuceneDictionary创建了简单的字典。问题是因为索引没有对项目ID的任何引用,所有模块都提出了建议,我想在某些项目中搜索。如何为这种情况正确创建索引?

更多信息:我正在使用Hibernate Search

1 个答案:

答案 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,您仍然可以访问所有租户的所有数据。