码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-04-19 10:11:28      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

上文介绍了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的配置不是很灵活,此处根据上文的工作流程给出各部分的配置,更多的高级配置可以在使用时查阅文档。

 

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

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

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

标签:

原文地址:http://www.cnblogs.com/h-hq/p/5404679.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!