使用带有nhibernate.search的分片来分区索引

时间:2011-07-28 10:06:16

标签: nhibernate lucene.net sharding nhibernate.search

我们在Lucene之上使用NHibernate 3.1和NHibernate.Search进行全文搜索。到目前为止,它工作得很好,但我们有一些可扩展性问题:

在我们的数据库中,我们有几个不同客户的数据 - 每个客户都不能看到彼此的数据。到目前为止,我们已经使用Filters解决了它,但问题是我们的索引变得越来越大,并且我们遇到了悲观锁定阻塞查询的问题。

我们想要做的是使用Lucene的分片功能为每个客户分配索引(所有实体都有一个具有此customerId的属性)。

有没有人在NHibernate搜索中尝试过这个 - 它甚至可能吗?

1 个答案:

答案 0 :(得分:1)

不确定您的数据库/会话工厂设置是什么样的,但您可以使用指向每个客户的不同索引目录的会话工厂。如果你只有一个数据库,这可能有点奇怪,但如果你在1个数据库中支持多个客户的方法是合理的话,它应该是非常轻松的。

如果这听起来很有趣,请查看this answer