0

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

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

现在我们将需要另一个前面有负载均衡器的网络服务器,我显然不能让每个服务器索引都依赖于负载均衡器指向的位置,因为它们将不同步。

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

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

非常感谢

4

2 回答 2

0

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

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

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

于 2013-11-09T07:27:53.230 回答
0

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

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

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

http://www.elasticsearch.org/

于 2013-05-21T18:34:19.047 回答