Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为Zend_Search_Lucene支持的搜索执行表在线重新索引的最佳方法_Php_Deployment_Indexing_Zend Search Lucene - Fatal编程技术网

Php 为Zend_Search_Lucene支持的搜索执行表在线重新索引的最佳方法

Php 为Zend_Search_Lucene支持的搜索执行表在线重新索引的最佳方法,php,deployment,indexing,zend-search-lucene,Php,Deployment,Indexing,Zend Search Lucene,我正在使用Zend_Search_Lucene对应用程序中几个不同表中的记录进行全文搜索。我刚刚实现了这个功能,目前索引是在应用程序部署后首次使用搜索功能的基础上构建的。这显然不是我想要的产品 我正在寻找一种简单的方法来执行索引,作为应用程序部署逻辑的一部分,然后每隔半小时左右对添加/更新的记录执行一次增量索引 要实现这一点,我应该考虑什么 感谢您提供的所有帮助。无需将索引作为部署的一部分。我在这里提出一个解决办法 在应用程序中创建一个默认目录,如searchdata。在这个文件夹中,为不同类型

我正在使用Zend_Search_Lucene对应用程序中几个不同表中的记录进行全文搜索。我刚刚实现了这个功能,目前索引是在应用程序部署后首次使用搜索功能的基础上构建的。这显然不是我想要的产品

我正在寻找一种简单的方法来执行索引,作为应用程序部署逻辑的一部分,然后每隔半小时左右对添加/更新的记录执行一次增量索引

要实现这一点,我应该考虑什么


感谢您提供的所有帮助。

无需将索引作为部署的一部分。我在这里提出一个解决办法

在应用程序中创建一个默认目录,如searchdata。在这个文件夹中,为不同类型的数据创建单独的路径(例如,对于城市,作为city_索引的文件夹)。 在(应用程序的)配置文件中指定这些路径。 编写php脚本,以便它读取表数据并生成索引。这些脚本使用配置路径创建索引。 编写一个主脚本,运行所有这些脚本

在服务器上运行这些脚本一次。此向前搜索将继续(使用配置路径进行搜索)。(首次搜索时没有索引)


如果已经添加了一个新的城市,那么在代码中添加该城市(模型函数)时,db update也会更新索引。同时优化索引文件,这将减少搜索时间。此操作并不频繁,因此动态更新不是问题。

我喜欢在每次写入记录时添加索引的想法。唯一的问题是,我有一些记录类型(例如注释),它们可能比其他记录类型(例如用户)添加得更频繁。添加索引和优化会影响文件系统,因此速度非常慢。你还会推荐这种方法吗?