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



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

(基本上,每次当用户发布或回复内容时,我都会更新索引,以便搜索可以返回最新的结果。不确定这是不是最好的方法)

现在我们需要另一个前端有负载均衡器的web服务器,显然我不能让每个服务器根据负载均衡器指向的位置索引自己的索引,因为它们将不同步。

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

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

Thanks to lot

你可以通过创建一个提供功能的服务,比如WCF或Rest服务,将Lucene索引引擎从你的web应用中分离出来。

你也可以使用已经存在的搜索服务器。

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

http://www.elasticsearch.org/

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

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

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

相关内容

  • 没有找到相关文章

最新更新