Lucene.net服务器场/多个服务器

时间:2013-05-21 18:08:10

标签: lucene.net server-farm

之前我没有考虑过这个问题,因为我只在一个Windows Server 2008上托管应用程序,而lucene.net将索引存储在本地硬盘上。

(基本上,每次,当用户发布内容或回复某些内容时,我都会更新索引,因此搜索可以返回最新结果。不确定这是否是最佳方式)

既然我们需要另一台带有负载均衡器的网络服务器,我显然不能拥有自己的每个服务器索引取决于负载均衡器指向的位置,因为它们将不同步。

对我来说,一个选项是连接两个服务器并将它们映射到存储索引的共享服务器,但这是一个建议的解决方案吗?

你们如何在服务器场环境中管理lucene.net的解析和索引?

非常感谢

2 个答案:

答案 0 :(得分:0)

您可以通过创建提供功能的服务(例如WCF或Rest服务)从Web应用程序中分离Lucene索引引擎。

您也可以使用现有的搜索服务器。

http://lucene.apache.org/solr/

http://www.elasticsearch.org/

答案 1 :(得分:0)

我们保持负载均衡服务器同步的方式,每个都有自己的Lucene副本,就是在其他服务器上运行任务,每5分钟运行一次,命令每个负载均衡的服务器将其索引更新为某个时间戳。

例如,任务向所有负载平衡服务器发送时间戳'12 / 1/2013 12:35:02.423'(任务通过查询字符串将时间戳提交到每个负载均衡网站上的网页) ,然后每个服务器使用该时间戳来查询数据库,查找自上次更新到该时间戳以来发生的所有更新,并更新其本地Lucene索引。

每个服务器还将时间戳存储在db中,因此它知道每个服务器上次更新的时间。因此,如果服务器脱机,当它重新联机时,下次收到时间戳命令时,它将获取它在脱机时错过的所有更新。