【问题标题】:Best way to approximate "Includes" in Sphinx?在 Sphinx 中近似“包含”的最佳方法?
【发布时间】:2017-03-03 14:03:00
【问题描述】:

我有一个非常长且复杂的 sphinx config 文件,其中包含多个索引。主要的(idx_Main)不仅巨大,它索引了超过 200 万条记录table。有时我会遇到意外的搜索 (SphinxQL) 结果,并且由于长达一小时的轮换,测试成为一项挑战。理想情况下,我可以在带有一些样本记录的测试表上运行完全相同的索引。

但是我还没有找到一个好的方法来做到这一点;

如果我使用另一个索引进行复制和粘贴(例如idx_test),我很快就会退出“同步”(对 idx_test 的更改不会延续到 idx_Main 索引的更改,反之亦然)

如果我只是更改 Select 我会覆盖原始索引

如果我更改 Select 和索引名称以及 src_index 并旋转,我似乎会弄乱 Sphinx,因为我现在有一个不再在配置文件中的存储索引 (idx_Main)。

在理想情况下,我可以在配置中有一个Include,以便我可以存储例如

{ idx_Main 各种设置 }

{ idx_Test 包括 idx_Main 设置 }

但我认为没有办法做到这一点。那么,使用相同设置(不破坏/覆盖生产/主索引)在较小的表上测试大型生产索引的更改的最有效方法是什么?

【问题讨论】:

    标签: sphinx


    【解决方案1】:

    它没有很好地宣传,但 sphinx 配置文件本身可以是一个脚本。 (例如 PHP、Perl,甚至 SH 等)PHP 尤其适合实现包含。

    sphinx.conf:

    #!/usr/bin/php
    source src {
    
    ...
    index inx1 {
      <?php include "main_settings.conf"; ?>
      ...
    

    http://sphinxsearch.com/blog/2013/11/05/sphinx-configuration-features-and-tricks/

    但在大多数情况下也可以只使用继承 - 在“模板”索引中定义大量设置 - 那么最终索引只需要它想要覆盖的设置(如路径!) 它在关于 delta 的部分中进行了演示 http://sphinxsearch.com/docs/current.html#delta-updates

    编辑添加,在具有测试索引的点上,继承以及sql_query_range 相当酷。

    可以完全按照需要设置主索引(但使用 sql_query_range),然后创建第二个测试索引,该索引仅覆盖 sql_query_range。无需重新声明 sql_query 或任何 sql_attr_* 字段等。因此更改主索引,测试索引也会更新。

    source main {
    ....
        sql_query_range = SELECT MIN(id),MAX(id) FROM documents
        sql_query = SELECT * FROM documents WHERE id>=$start AND id<=$end
        sql_attr_uint = category_id
    ...
    }
    

    ...然后创建测试索引,只重新声明 sql_query_range

    source main_test : main {
        sql_query_range = SELECT 1,1000
    }
    
    index main_test : main {
        path = /var/sphinx/main_test
    }
    

    这就是创建第二个“样本”索引所需的全部内容,它重复使用完全相同的设置(除了文档数量!)

    (好吧,也许不是,如果使用sql_joined_field 和/或sql_attr_multi 它更复杂http://sphinxsearch.com/bugs/view.php?id=1591

    【讨论】:

      猜你喜欢
      • 2010-10-12
      • 2012-10-18
      • 2011-07-20
      • 1970-01-01
      • 2013-03-31
      • 1970-01-01
      • 2010-11-02
      • 2010-11-16
      • 2019-04-06
      相关资源
      最近更新 更多