Php 为Zend_Search_Lucene支持的搜索执行表在线重新索引的最佳方法
我正在使用Zend_Search_Lucene对应用程序中几个不同表中的记录进行全文搜索。我刚刚实现了这个功能,目前索引是在应用程序部署后首次使用搜索功能的基础上构建的。这显然不是我想要的产品 我正在寻找一种简单的方法来执行索引,作为应用程序部署逻辑的一部分,然后每隔半小时左右对添加/更新的记录执行一次增量索引 要实现这一点,我应该考虑什么Php 为Zend_Search_Lucene支持的搜索执行表在线重新索引的最佳方法,php,deployment,indexing,zend-search-lucene,Php,Deployment,Indexing,Zend Search Lucene,我正在使用Zend_Search_Lucene对应用程序中几个不同表中的记录进行全文搜索。我刚刚实现了这个功能,目前索引是在应用程序部署后首次使用搜索功能的基础上构建的。这显然不是我想要的产品 我正在寻找一种简单的方法来执行索引,作为应用程序部署逻辑的一部分,然后每隔半小时左右对添加/更新的记录执行一次增量索引 要实现这一点,我应该考虑什么 感谢您提供的所有帮助。无需将索引作为部署的一部分。我在这里提出一个解决办法 在应用程序中创建一个默认目录,如searchdata。在这个文件夹中,为不同类型
感谢您提供的所有帮助。无需将索引作为部署的一部分。我在这里提出一个解决办法 在应用程序中创建一个默认目录,如searchdata。在这个文件夹中,为不同类型的数据创建单独的路径(例如,对于城市,作为city_索引的文件夹)。 在(应用程序的)配置文件中指定这些路径。 编写php脚本,以便它读取表数据并生成索引。这些脚本使用配置路径创建索引。 编写一个主脚本,运行所有这些脚本 在服务器上运行这些脚本一次。此向前搜索将继续(使用配置路径进行搜索)。(首次搜索时没有索引)
如果已经添加了一个新的城市,那么在代码中添加该城市(模型函数)时,db update也会更新索引。同时优化索引文件,这将减少搜索时间。此操作并不频繁,因此动态更新不是问题。我喜欢在每次写入记录时添加索引的想法。唯一的问题是,我有一些记录类型(例如注释),它们可能比其他记录类型(例如用户)添加得更频繁。添加索引和优化会影响文件系统,因此速度非常慢。你还会推荐这种方法吗?