2012-09-13 156 views
1

我有一个狮身人面像实例有两个索引:主要和三角洲。增量索引选择上次合并后修改的文档。这包括带有新的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范围查询,以便索引只能通过修改的记录,而不是整个数据库迭代? (和执行,因为缩短的范围OFC较少查询)

回答

2

正如我的答复指出你的其他问题,将执行类似

sql_query_range = SELECT (SELECT maxID from SphinxTable),MAX(id) FROM documents