17

这篇文章为我提供了大量信息:
Implement Lucene on Existing .NET / SQL Server stack with multiple webservers

我想继续通过询问实现 Lucene 目录的概念,该目录将索引持久保存到数据库(在我的情况下为 SQL Server) - 如果有人有一个 SWAG 的努力会有所帮助。

我可以看到 Java 领域有这个(例如 Compass),我真的希望 Stackoverflow 的人可能会考虑这个?对于任何反馈,我们都表示感谢。

我的菜鸟想法是,将索引持久化到数据库将是解决“分布”问题的一种方法。因此,与其实现消息传递(由于部署限制,我的软件无法实现),或者调度(没问题 - 产品人员总是在决定“当前”索引数据必须如何做决定时感到不安),IndexReader 重新打开( ) 将有效地更新任何服务器节点上的索引快照。

如果数据库并发/负载不是要解决的问题的核心,这是否可行?- 我们的使用侧重于促进对字段的不同数据分析,从而促进不同形式的匹配。

我们的部署架构/限制实际上不允许我们坚持使用专用服务器 ala SOLR,因此这种分发概念已被我们打折。

4

3 回答 3

0

您等待多少索引更改?您想何时阅读索引?(在应用程序启动时?)将索引放入数据库并在创建索引时“下载”它可能会消耗太多资源。

不确定您的部署限制,但您能否为您的机器提供共享文件空间(例如 SMB/NFS 共享或类似的,甚至是基于 SAN 的解决方案)?

于 2012-08-18T06:34:49.620 回答
0

我会有点害怕数据库中索引的性能问题。看看弹性搜索。它是指南针的继任者。它需要 Java,但为您的 .NET 解决方案提供了一个非常简洁的 REST 接口。Elasticsearch 支持多个节点之间的分布和复制。您可以在网络服务器节点上运行它。

于 2013-04-24T19:51:29.003 回答
0

此解决方案将破坏索引的性能,因为它必须从数据库中检索它。我强烈建议转向更新/更好的替代方案,即 Solr(例如使用Solr.NET)或 ElasticSearch(使用NEST

Solr 是 Lucene 索引的高级接口/管理器,为您解决了简化的配置、集群、复制等问题。好消息是,如果你有一些经验。使用 Lucene,这不会是那么大的一步

ElasticSearch 是一种不同的方法,但它并不难学。

于 2017-11-01T16:22:40.437 回答