我有一个带有两个索引的Sphinx实例:main和delta。增量索引选择在上次合并后修改的文档。这包括带有新ID的文档和已有ID的文档。
我按照常用方法创建了一个远程查询(文档中的最小和最大ID以及1000条记录的步骤)。这种方法的问题在于,在包含1M文档的数据库中,将会有大量查询返回任何内容,因为远程查询涵盖了所有ID。 即:
sql_query_range = SELECT MIN(id),MAX(id) FROM documents
sql_range_step = 1000
sql_query = SELECT * FROM documents where modified_date > (select merge_date from SphinxTable)
WHERE id>=$start AND id<=$end
有什么方法可以定义我的sql范围查询,以便索引器只迭代修改的记录而不是整个数据库? (并且由于c的缩短范围而执行较少的查询)
答案 0 :(得分:2)
正如我在回答您的其他问题时所说,会做类似
的事情sql_query_range = SELECT (SELECT maxID from SphinxTable),MAX(id) FROM documents