Sphinx-安装和配置
本例是在Linux下, 環境 CentOS6.5 + PHP5.6.8 + MySQL5.6.13 + Sphinx2.3.1-beta
到官網下載對應環境的安裝包, 按照官方文檔指定步驟進行安裝
第一種方式是采用API調用, 我們可以使用PHP, Python, Perl, Ruby等編程語言的API函數進行查詢, 這種方式不必重新編譯MySQL, 模塊間改動比較少, 相對靈活
第二種需要重新編譯MySQL, 將Sphinx以插件的方式編譯到MySQL中去, 這種方式對程序改動比較少, 僅僅需要改動SQL語句即可, 但前提是你的MySQL版本必須在5.1以上
Linux下源碼安裝:
yum -y install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel
./configure --prefix /usr/local/sphinx --with-mysql=/usr/local/mysql? --enable-id64
make && make install
安裝完畢, 目錄如下:
bin: 可執行文件目錄
indexer 用來生成索引數據,?創建索引, 收集要被檢索的數據
searchd 后臺進程, 使用 indexer 生成的數據做查詢
etc: 配置文件目錄
var: 索引等數據存放目錄
配置, Sphinx默認使用 etc/sphinx.conf, 如果沒有, 則拷貝sphinx.conf.dist一份到sphinx.conf:
#設置主數據源配置, 與增量數據源分開, 避免重復建立索引, 只為增量數據源建立索引即可 source src1 {type = mysql #數據庫類型sql_host = localhostsql_user = rootsql_pass =sql_db = testsql_port = 3306 # optional, default is 3306sql_sock = /tmp/mysqld.sock #如果是Linux下需要開啟, 指定sock文件sql_query_pre = SET NAMES utf8 #預執行語句sql_query_pre = SET SESSION query_cache_type=OFF #關閉緩存sql_query = \SELECT id, title, content FROM post #獲取數據的SQL語句sql_query_info = SELECT * FROM post WHERE id=$id #必須要有 此處id與sql_query中的id鍵名相同#sql_attr_uint = group_id #對排序字段進行注釋 原自帶表中的字段#sql_attr_timestamp = date_added #對排序字段進行注釋 原自帶表中的字段sql_ranged_throttle = 0 } #src1主數據源的增量數據源, 繼承主數據源 #source src1throttled : src1 #{ # sql_ranged_throttle = 100 #} #建立主數據索引test1 index test1 {source = src1 #索引的數據源path = /usr/local/sphinx/var/data/test1 #索引文件所放目錄docinfo = externdict = keywordsmlock = 0morphology = nonemin_word_len = 1html_strip = 0charset_type = utf-8charset_table = utf-8 } #主數據索引test1的增量數據索引 #index test1stemmed : test1 #{ # path = /usr/local/sphinx/var/data/test1stemmed # morphology = stem_en #} #建立主數據索引dist1 #index dist1 #{ ## type = distributed # local = test1 # local = test1stemmed # agent = localhost:9313:remote1 # agent = localhost:9314:remote2,remote3 # agent_connect_timeout = 1000 # agent_query_timeout = 3000 #} ##建立主數據索引rt #index rt #{ # type = rt # path = /usr/local/sphinx/var/data/rt # rt_field = title # rt_field = content # rt_attr_uint = gid #} #索引器的配置, 主要用來設置索引器所占內存 indexer {mem_limit = 128M } #服務進程的配置 searchd {listen = 9312listen = 9306:mysql41log = /usr/local/sphinx/var/log/searchd.logquery_log = /usr/local/sphinx/var/log/query.logread_timeout = 5client_timeout = 300max_children = 30persistent_connections_limit = 30pid_file = /usr/local/sphinx/var/log/searchd.pidseamless_rotate = 1preopen_indexes = 1unlink_old = 1mva_updates_pool = 1Mmax_packet_size = 8Mmax_filters = 256max_filter_values = 4096max_batch_queries = 32workers = threads # for RT to work} common { }a
轉載于:https://www.cnblogs.com/JohnABC/p/4730515.html
總結
以上是生活随笔為你收集整理的Sphinx-安装和配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库操作,复制表
- 下一篇: ASP入门(十一)-Session小案例