2011-07-28 32 views
0

我们在Lucene的顶部使用NHibernate 3.1和NHibernate.Search进行全文搜索。到目前为止,它工作良好,但我们有一些可扩展性问题:对nhibernate.search使用分片索引分片

在我们的数据库中,我们有几个不同的客户数据 - 每个客户都不能看到彼此的数据。到目前为止,我们已经使用过滤器解决了这个问题,但问题是我们的索引正在增长巨大,而且我们在悲观锁定方面遇到问题,阻碍了查询。

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

有没有人在NHibernate Search中试过这个 - 是否有可能?

回答

1

不知道你的数据库/会话工厂设置是什么样的,但你可以使用会话工厂指向每个客户的不同索引目录。如果你只有一个数据库,这可能有点奇怪,但如果你在一个数据库中支持多个客户的方法是健全的,那么这应该是非常容易的。

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

+0

嗯...我想,我可以使用SessionFactory的Dictionary'ish方法 - 它将为每个客户实例化不同的会话参数。它也可能用于更灵活地使用二级缓存(因为配置文件(每个客户)显示的用法非常不同)感谢您的时间:-)。 – Goblin