【问题标题】:Sphinx ranged query狮身人面像远程查询
【发布时间】:2012-09-13 11:59:13
【问题描述】:

我有一个带有两个索引的 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 的范围缩短,执行的查询更少)

【问题讨论】:

    标签: sphinx thinking-sphinx


    【解决方案1】:

    正如我在对您的其他问题的回复中指出的那样,会做类似的事情

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      相关资源
      最近更新 更多