程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> [深入淺出Sphinx]Sphinx配置文件解析,

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

編輯:MySQL綜合教程

[深入淺出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的配置不是很靈活,此處根據上文的工作流程給出各部分的配置,更多的高級配置可以在使用時查閱文檔。

 

原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

如果本文對你有幫助,請點下推薦,寫文章不容易。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved