2009-04-17 69 views
0

我一个question昨天发布了关于使用NHibernate搜索与NHibernate V2并没有收到答复。这已向我确认,我需要重新考虑使用NHibernate.Search并查看其他全文搜索解决方案。我希望能够索引和搜索文档并在搜索结果中显示文档的相关摘录。净全文检索库

如果我不能使用Nhibernate.search那里似乎没有多大点Lucene集成到NHibernate的自己,有什么替代方案。我看过Searcharoo,我喜欢它,因为它的代码非常完备,我很乐意将它集成到Nhibernate中。

是否还有更多的图书馆我应该看?我应该使用没有Nhibernate.Search的lucene吗?

回答

7

Lucene.Net是我用过的各种项目来做到这一点。

LINQ to Lucene是我在一个项目上工作,解决了一些你的问题。 Lucene要求您严格控制索引和搜索。当你想为大系统构建一个高性能搜索引擎时,这非常棒。糟糕的是,如果你只想在幕后“有效”的东西。

我写了一个职位上LINQ To Lucene的LINQ to SQL类,但它非常适用于任何POCO情况。

更新: 我不熟悉Nhibernate到Lucene系统,也不知道它是如何配置的。 通过使用Lucene.Net构建真正的搜索子系统,我遇到了几个挑剔的事情,你必须处理建立索引和查询它们。

  • 搜索索引字段存储很不一样不同于数据库。很少有数据库模式(或ORM实体)与索引“模式”之间的一对一映射。
  • 如果你想访问高级搜索引擎功能,如加权查询,关键字突出显示,自定义比较器(分拣机)(等等) - 你会发现一个自动ORM < - > Lucene桥梁将是不够的。所有这些事情都需要手动构建查询对象图,而不是使用基本的Lucene查询语法。

本质上,如果你想让你的搜索引擎不仅仅是最基本的东西,那么你会直接使用Lucene.Net。

+0

screamingpens.com不再是:-( – 2010-01-11 19:47:58

0

我用DotLucene但遇到了一些问题。一个重要的原因是它需要完全信任才能运行。

因为我已经搬到使用SearchAroo:http://www.searcharoo.net/

它采用了XML数据存储,而且我发现它的性能是非常相似点Lucene的。

如果你正在寻找另一种选择,我一定会看看。