You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sphinx 2.3配置迁移至Sphinx 3.1版本的修改点咨询

Sphinx 2.3 转 3.1 配置修改指南

概念澄清

  • 你配置中使用的type=mysql是数据源类型,定义索引构建时从MySQL拉取数据,该用法完全兼容Sphinx 3.1,不需要修改
  • 官方示例中出现的type=rt是实时索引类型,属于索引的存储分类,和你当前使用的普通磁盘索引(plain类型,Sphinx 2.x默认不写即为plain)是并行的两类索引,没有强制替换要求,如果你不需要实时增量写入数据的场景,继续使用原有plain索引即可。

必须调整的配置项

1. index模块

Sphinx 3.x要求显式声明索引类型,原有普通磁盘索引需要新增一行type = plain,其余参数均兼容无需修改。

2. 废弃参数清理

  • 旧版本charset_type参数在3.x中已废弃,默认强制使用utf-8,你原有配置中已注释该参数,无需额外处理
  • 旧版本inplace_enable参数在3.x中已拆分废弃,你原有配置中已注释该参数,无需额外处理

3. 符号转义修正

原有配置中sql_query语句里的&gt;、&lt;是HTML转义符,直接替换为原生的>、<即可。

修改后的完整配置

source src1_c_march_april_2020
{
        type                    = mysql

        sql_host                = 67.225.224.103
        sql_user                = enspekto_wrdp3
        sql_pass                = xxxxxxx
        sql_db                  = enspekto_wrdp3
        sql_port                = 3306  # optional, default is 3306
        sql_query_pre           = SET CHARACTER_SET_RESULTS=utf8
        sql_query_pre           = SET NAMES utf8

        sql_query_range = SELECT MIN(wpf7_readibility_content_index.tw_scrap_data_id)+10921149,MAX(wpf7_readibility_content_index.tw_scrap_data_id)-632561+631300 FROM wpf7_readibility_content_index
        sql_range_step = 100000
        sql_query                =  SELECT wpf7_readibility_content_index.id,wpf7_readibility_content_index.tw_scrap_data_id, wpf7_readibility_content_index.content,TABLE1.id, UNIX_TIMESTAMP( TABLE1.sql_date ) AS added_ts \
        FROM wpf7_readibility_content_index \
        INNER JOIN TABLE1 ON TABLE1.id = wpf7_readibility_content_index.tw_scrap_data_id WHERE wpf7_readibility_content_index.tw_scrap_data_id >=$start AND wpf7_readibility_content_index.tw_scrap_data_id <=$end

        sql_attr_uint           = tw_scrap_data_id
        sql_field_string        = content
        sql_attr_timestamp      = added_ts

}

index test1_march_april_2020
{
        type                    = plain # 3.x要求显式声明索引类型
        source                  = src1_c_march_april_2020
        path                    = /home2/spindexes/test1_march_april_2020
        html_strip              = 1
        html_remove_elements    = style, script, object, embed, span
        expand_keywords         = 1
        blend_chars             = +,&->:#
}


indexer
{
        mem_limit               = 1024M
        max_iosize              = 1048576
        max_iops                = 40
        write_buffer            = 2M

}
searchd
{
        listen                  = 9312
        listen                  = 9306:mysql41
        log                     = /var/log/sphinx/searchd.log
        query_log               = /var/log/sphinx/query.log
        read_timeout            = 5
        max_children            = 30
        pid_file                = /var/run/sphinx/searchd.pid
        seamless_rotate         = 1
        preopen_indexes         = 1
        unlink_old              = 1
        workers                 = threads # for RT to work
        binlog_path             = /home2/spindexes/
}
common
{
        lemmatizer_base         = /usr/local/share/sphinx/dicts/
}

迁移后操作说明

配置更新完成后需要重新构建全量索引,执行indexer --all --rotate即可正常使用。如果后续需要支持实时更新数据,再考虑切换为rt索引,切换后需要将数据同步逻辑改为调用Sphinx实时写入接口,不再需要通过MySQL数据源定时构建索引。

内容的提问来源于stack exchange,提问作者Faizan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:06:01