【问题标题】:re-indexing a search engine every few minutes每隔几分钟重新索引搜索引擎
【发布时间】:2009-07-05 08:59:01
【问题描述】:

我在我的开发计算机上运行搜索服务,我必须运行一个索引器(.exe 文件)并每隔 1-5 分钟重新启动一个服务(我使用的是 sphinx 搜索)。 我将如何在 Windows 中执行此操作?我的想法是通过windows任务调度程序运行一个批处理文件,但是你是怎么做的呢?

【问题讨论】:

  • adamcroft:只是出于好奇,真的有必要在windows下重启sphinx search daemon吗?我们在 linux 服务器上使用 sphinx,它不需要重新启动任何东西。索引器将自动生成新的索引文件,并在完成后与旧的索引文件一起旋转。
  • 是的,由于某种原因,当我不重新启动 searchd 时,我遇到了一个非常奇怪的错误。我突然开始得到尚未达到的文档 ID 的结果。 (例如 - PK 的自动增量为 70,我得到 docid 为 200 的搜索结果)。有什么建议吗?

标签: php windows sphinx


【解决方案1】:

在 Windows 中使用 Windows Task Scheduler。在 Linux 中使用 cron

否则,您可以编写一个守护进程,该进程将在指定的时间间隔内无限循环休眠,并在时间间隔结束后重新索引。然后,它会再次休眠并继续该过程。

例如(在 Perl 中):

#!perl

use strict;
use warnings;

use Proc::Daemon;

Proc::Daemon::Init;

my $minutes = 5;
my $seconds = 60 * $minutes;

while (1) {
    sleep($seconds);
    # Do necessary work
}

【讨论】:

    【解决方案2】:

    我发现 pycron 作为内置任务调度程序的替代品非常有用。如果你习惯了 unix cron 风格,你会从一开始就爱上它。它有一个可编辑的配置文件和日志文件以及更多选项。

    一篇关于它的文章:http://www.bigbluehost.com/article4.html

    Pycron 的网站:http://www.kalab.com/freeware/pycron/pycron.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      • 2014-09-12
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-12
      相关资源
      最近更新 更多