[深入浅出Sphinx]Sphinx配置文件解析

上文介绍了Sphinx的工作原理,关于如何安装的文章在网上有很多,笔者就不再复述了,现在继续讲解Sphinx的配置文件,让Sphinx工作起来。

数据源配置

先来看一份数据源的配置文件示例:

 1 source test
 2  {
 3      type                    = mysql
 4
 5      sql_host                = 127.0.0.1
 6      sql_user                = root
 7      sql_pass                = root
 8      sql_db                  = test
 9      sql_port                = 3306    # optional, default is 3306
10
11      sql_query_pre           = SET NAMES utf8
12      sql_query            = SELECT id, name, add_time FROM tbl_test
13
14      sql_attr_timestamp      = add_time
15
16    sql_query_info_pre      = SET NAMES utf8
17      sql_query_info          = SELECT * FROM tbl_test WHERE id=$id
18  }

其中

source后面跟着的是数据源的名字,后面做索引的时候会用到;

type:数据源类型,可以为MySQL,PostreSQL,Oracle等等;

sql_host、sql_user、sql_pass、sql_db、sql_port是连接数据库的认证信息;

sql_query_pre:定义查询时的编码

sql_query:数据源配置核心语句,sphinx使用此语句从数据库中拉取数据;

sql_attr_*:索引属性,附加在每个文档上的额外的信息(值),可以在搜索的时候用于过滤和排序。设置了属性之后,在调用Sphinx搜索API时,Sphinx会返回已设置了的属性;

sql_query_info_pre:设置查询编码,如果在命令行下调试出现问号乱码时,可以设置此项;

sql_query_info:设置命令行下返回的信息。

索引配置

 1 index test_index
 2 {
 3     source                    = test
 4     path                      = /usr/local/coreseek/var/data/test 5     docinfo                   = extern
 6     charset_dictpath          = /usr/local/mmseg3/etc/
 7     charset_type              = zh_cn.utf-8
 8     ngram_len                 = 1
 9     ngram_chars               = U+3000..U+2FA1F
10 }

其中

index后面跟的test_index是索引名称

source:数据源名称;

path:索引文件基本名,indexer程序会将这个路径作为前缀生成出索引文件名。例如,属性集会存在/usr/local/sphinx/data/test1.spa中,等等。

docinfo:索引文档属性值存储模式;

charset_dictpath:中文分词时启用词典文件的目录,该目录下必须要有uni.lib词典文件存在;

charset_type:数据编码类型;

ngram_len:分词长度;

ngram_chars:要进行一元字符切分模式认可的有效字符集。

中文分词核心配置

一元分词

1 charset_type = utf8
2
3 ngram_len = 1
4
5 ngram_chars = U+3000..U+2FA1F

mmseg分词

1 charset_type = utf8
2
3 charset_dictpath = /usr/local/mmseg3/etc/
4
5 ngram_len = 0

运行示例

数据库数据

使用indexer程序做索引

查询

可以看到,配置文件中的add_time被返回了,如上图的1所示。而sql_query_info返回的信息如上图的2所示。

结束语

Sphinx的配置不是很灵活,此处根据上文的工作流程给出各部分的配置,更多的高级配置可以在使用时查阅文档。

原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

如果本文对你有帮助,请点下推荐,写文章不容易。

时间: 2024-10-11 10:15:51

[深入浅出Sphinx]Sphinx配置文件解析的相关文章

Spring Boot干货系列:(二)配置文件解析

Spring Boot:配置文件解析   前言 上一篇介绍了Spring Boot的入门,知道了Spring Boot使用"习惯优于配置"(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来.所以,我们要想把Spring Boot玩的溜,就要懂得如何开启各个功能模块的默认配置,这就需要了解Spring Boot的配置文件application.properties. 正文 Spring Boot使用了一个全局的配置文件applicat

linuxPAM认证配置文件解析

1.PAM文件 /etc/pam.conf或者/etc/pam.d/ PAM配置文件/lib(64)/security/pam_*.so 可动态加载的PAM service module 2.配置文件格式 /etc/pam.conf:主配置文件 service    type    control    module-path    module-arguments /etc/pam.d/service:服务配置文件 type    control    module-path    modul

MySQL 5.6.24 线上版本配置文件解析

线上MySQL服务器配置文件解析 innodb_buffer_pool_size 非常重要的一个参数,用于配置InnoDB的缓冲池,如果数据库中只有哦Innodb表,则推荐配置量为总内存的75% select  engine,round(sum(data_length + index_length)/1024/1024,1) as 'Total MB' from information_schema.tables  where table_schema not in ('information_

SSH学习之二 OpenSSH配置文件解析

下面是对SSH配置文件的一些选项的分解说明,ssh_config是OpenSSH客户端的配置文件,sshd_config是OpenSSH服务器端的配置文件. ssh_config的内容如下: # This is the ssh client system-wide configuration file.  See ssh_config(5) for more information.  This file provides defaults for users, and the values c

redis概述,特点,与Memached的不同,生产环境主从配置,redis配置文件解析

Redis概述: 是一个基于Key-Value的持久化数据库存储,支持丰富的数据类型,用C语言编写,可基于内存又可持久化的日志型.Key-Value数据库,并提供多种语言的API Redis特点 1.Key-Value健值类型存储 2.支持数据可靠存储及落地 3.单进程单线程高性能服务器 4.单机qps(每秒查询率)可以达到10w 5.适合小数据量高速读写访问 Redis跟Memached的不同 1.Redis可以持久化数据存储 2.性能高很,Redis能支持超过10W每秒的读写频率 3.丰富的

SSH问题:系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常

现象:spring加载配置文件applicationContext.xml出错,抛出nested exception is og.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 47; cvc-elt.1: 找不到元素 'beans' 的声明r的异常信息. 造成该异常原因有两种: 第一,配置文件头部配置的xsd版本信息不正确,造成解析时出错.spring头部xsd或dtd校验文件的查找分两步,第一先从本地jar包中找,如果找到则用

mybatis配置文件解析原理简略时序图

配置文件解析主要用到XMLConfigBuilder(解析mybatis-config.xml) -->  XMLMapperBuilder(解析mapper.xml) --> XMLStatementBuilder(解析mapper.xml中cache, resultMap等配置信息) -->XMLScriptBuilder(解析mapper.xml中insert update select delete等sql语句节点) 1. 每个SQL语句节点都会生成一个SqlSource,每个S

系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常

现象:spring加载配置文件applicationContext.xml出错,抛出nested exception is og.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 47; cvc-elt.1: 找不到元素 'beans' 的声明r的异常信息. 造成该异常原因有两种: 第一,配置文件头部配置的xsd版本信息不正确,造成解析时出错.spring头部xsd或dtd校验文件的查找分两步,第一先从本地jar包中找,如果找到则用

WCF中配置文件解析

WCF中配置文件解析 2014-06-14 参考 WCF中配置文件解析 返回 在WCF Service Configuration Editor的使用中,我们通过配置工具自动生成了WCF服务端的config文件.现在我们来看下这个配置文件各个标签的意义: 1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 <!-- 这个程序集我们在项目中有引用的 --> 4