1. 程式人生 > >sphinx配置檔案詳解

sphinx配置檔案詳解

sphinx的配置:

其結構組成主要如下:

Source 源名稱1{                //指定資料來源

一些配置

}

Index 索引名稱1{

Source=源名稱1

}

Source 源名稱2{

一些配置

}

Index 索引名稱2{

Source=源名稱2

}

Indexer{

mem_limit = 32M

}

Searchd{                             //配置 searchd 守護程式本身

}

二.    Source 源名稱 相關配置說明

Type=資料庫型別(Mysql 或SQL);

Sql_host=              資料庫主機地址(如果是外網,請確保防火牆允許連結)

Sql_user=                     資料庫使用者名稱

Sql_pass=                     資料庫密碼

Sql_db=                 資料庫名稱

Sql_port=               資料庫埠

Sql_query_pre=      執行SQL前設定的編碼 (SET NAMES UTF8)

Sql_query=            全文檢索要顯示的內容,據官方說法:儘可能不要使用WHERE或GROUPBY ,將其交給SPHINX效率會更高;select 出來的欄位必須包含至少一個唯一主鍵,以及全文檢索的欄位 sphinx 會對SELECT 中的 欄位1 ,欄位2 建立sphinx自己的索引 及 在查詢的欄位中查詢關鍵字

  1. Sql_query_info= SELECT * FROM Inventory WHERE id=$id  來查詢匹配記錄在查詢中,$id 被替換為 searchd 返回的每個主鍵(除錯是使用建議註釋此項)

Strip_html= 0/1      是否去掉HTML標籤

Sql_attr_uint=         無符號整數屬性,可以設定多個,設定資料庫欄位,設定哪個能顯示出哪個欄位資料的整形來.

三.    Index中配置說明

Source=                 資料來源名稱

Path =                 索引記錄存放目錄,注:d:/sphinx/data/cg 這個的意思是 在data目錄下建立一個名為cg的檔案

min_word_len=      索引的詞的最小長度 設為1 既可以搜尋單個位元組搜尋,越小 索引越精確,但建立索引花費的時間越長

charset_type=        utf-8/gbk 設定資料編碼

charset_table=        字元表和大小寫轉換規則 .頻繁應用於sphinx的分詞過程

min_prefix_len =    最小字首(0)

min_infix_len =      最小中綴(1)

ngram_len =        對於非字母型資料的長度切割(預設已字元和數字切割,設定1為按沒個字母切割)

四.    searchd配置說明

port=                     sphinx的埠(9312 與 searchd.exe監聽結果一致)

log=                      服務程序日誌存放路徑,一旦sphinx出現異常,基本上可以從這裡查詢有效資訊

query_log=             客戶端查詢日誌 尤為有用 它將在執行時顯示每次搜尋並顯示結果

read_timeout=        請求超時(5)

max_children=        同時可執行的最大searchd 程序數(30)

pid_file=                程序ID檔案

max_matches=              查詢結果的最大返回數

seamless_rotate=    是否支援無縫切換,做增量索引時通常需要(0/1)

# 在啟動執行時是否提前載入所有索引檔案

preopen_indexes = 0

# 是否釋放舊的索引檔案
unlink_old = 1

# MVA跟新池大小(預設為1M)
mva_updates_pool = 1M

# 最大允許的網路包大小(預設8M)
max_packet_size = 8M

# 每個查詢最大允許的過濾器數量(預設256)
max_filters = 256

#每個過濾器最大允許的值的個數(預設4096)
max_filter_values = 4096

# 每個組的最大查詢數(預設為32)
max_batch_queries = 32

至此 spninx.conf 配置檔案結束;注意:如果有換行 必須用反斜槓 連結

配置案例:

  1. #定義一個數據源
  2. source search_main
  3. {
  4. #定義資料庫型別
  5.     type                 = mysql
  6. #定義資料庫的IP或者計算機名
  7.     sql_host             = localhost
  8. #定義連線資料庫的帳號
  9.     sql_user             = root
  10. #定義連結資料庫的密碼
  11.     sql_pass             = test123
  12. #定義資料庫名稱
  13.     sql_db               = test
  14. #定義連線資料庫後取資料之前執行的SQL語句
  15.     sql_query_pre        = SET NAMES utf8
  16.     sql_query_pre        = SET SESSION query_cache_type=OFF
  17. #建立一個sph_counter用於增量索引
  18.     sql_query_pre        = CREATE TABLE IF NOT EXISTS sph_counter
  19. ( counter_id INTEGER PRIMARY KEY NOT NULL,max_doc_id INTEGER NOT NULL)
  20. #取資料之前將表的最大id記錄到sph_counter表中
  21.     sql_query_pre        = REPLACE INTO sph_counter SELECT 1, MAX(searchid) FROM v9_search
  22. #定義取資料的SQL,第一列ID列必須為唯一的正整數值
  23.     sql_query            = SELECT searchid,typeid,id,adddate,data FROM v9_search where
  24.                                       searchid<( SELECT max_doc_id FROM sph_counter WHERE counter_id=1)
  25. and searchid>=$start AND searchid<=$end
  26. # sql_attr_uint和sql_attr_timestamp用於定義用於api過濾或者排序,寫多行制定多列
  27.     sql_attr_uint        =typeid
  28.     sql_attr_uint        = id
  29.     sql_attr_timestamp   = adddate
  30. #分割槽查詢設定
  31.     sql_query_range      = SELECT MIN(searchid),MAX(searchid) FROM v9_search
  32. #分割槽查詢的步長
  33.     sql_range_step       =1000
  34. #設定分割槽查詢的時間間隔
  35.     sql_ranged_throttle  =0
  36. #用於CLI的除錯
  37.     sql_query_info       = SELECT * FROM v9_search WHERE searchid=$id
  38. }
  39. #定義一個增量的源
  40. source search_main_delta : search_main
  41. {
  42.     sql_query_pre       =set names utf8
  43. #增量源只查詢上次主索引生成後新增加的資料
  44. #如果新增加的searchid比主索引建立時的searchid還小那麼會漏掉
  45.     sql_query           = SELECT searchid,typeid,id,adddate,data FROM v9_search where
  46.                                   searchid>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1)
  47. and searchid>=$start AND searchid<=$end
  48.     sql_query_range     = SELECT MIN(searchid),MAX(searchid) FROM v9_search where
  49.                                        searchid>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1)
  50. }
  51. #定義一個index_search_main索引
  52. index index_search_main
  53. {
  54. #設定索引的源
  55.     source            = search_main
  56. #設定生成的索引存放路徑
  57.     path         =/usr/local/coreseek/var/data/index_search_main
  58. #定義文件資訊的儲存模式,extern表示文件資訊和文件id分開儲存
  59.     docinfo           =extern
  60. #設定已快取資料的記憶體鎖定,為0表示不鎖定
  61.     mlock             =0
  62. #設定詞形處理器列表,設定為none表示不使用任何詞形處理器
  63.     morphology        = none
  64. #定義最小索引詞的長度
  65.     min_word_len      =1
  66. #設定字符集編碼型別,我這裡採用的utf8編碼和資料庫的一致
  67.     charset_type      = zh_cn.utf-8
  68. #指定分詞讀取詞典檔案的位置
  69.     charset_dictpath  =/usr/local/mmseg3/etc
  70. #不被搜尋的詞檔案裡表。
  71.     stopwords       =/usr/local/coreseek/var/data/stopwords.txt
  72. #定義是否從輸入全文資料中取出HTML標記
  73.     html_strip       =0
  74. }
  75. #定義增量索引
  76. index index_search_main_delta : index_search_main
  77. {
  78.     source   = search_main_delta
  79.     path    =/usr/local/coreseek/var/data/index_search_main_delta
  80. }
  81. #定義indexer配置選項
  82. indexer
  83. {
  84. #定義生成索引過程使用索引的限制
  85.     mem_limit        =512M
  86. }
  87. #定義searchd守護程序的相關選項
  88. searchd
  89. {
  90. #定義監聽的IP和埠
  91. #listen            = 127.0.0.1
  92. #listen            = 172.16.88.100:3312
  93.     listen            =3312
  94.     listen            =/var/run/searchd.sock
  95. #定義log的位置
  96.     log                =/usr/local/coreseek/var/log/searchd.log
  97. #定義查詢log的位置
  98.     query_log          =/usr/local/coreseek/var/log/query.log
  99. #定義網路客戶端請求的讀超時時間
  100.     read_timeout       =5
  101. #定義子程序的最大數量
  102.     max_children       =300
  103. #設定searchd程序pid檔名
  104.     pid_file           =/usr/local/coreseek/var/log/searchd.pid
  105. #定義守護程序在記憶體中為每個索引所保持並返回給客戶端的匹配數目的最大值
  106.     max_matches        =100000
  107. #啟用無縫seamless輪轉,防止searchd輪轉在需要預取大量資料的索引時停止響應
  108. #也就是說在任何時刻查詢都可用,或者使用舊索引,或者使用新索引
  109.     seamless_rotate    =1
  110. #配置在啟動時強制重新開啟所有索引檔案
  111.     preopen_indexes    =1
  112. #設定索引輪轉成功以後刪除以.old為副檔名的索引拷貝
  113.     unlink_old         =1
  114. # MVA更新池大小,這個引數不太明白
  115.     mva_updates_pool   =1M
  116. #最大允許的包大小
  117.     max_packet_size    =32M
  118. #最大允許的過濾器數
  119.     max_filters        =256
  120. #每個過濾器最大允許的值的個數
  121.     max_filter_values  =4096
  122. }

sphinx的管理命令:

1. 生成全部索引

/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf –all

若此時searchd守護程序已經啟動,那麼需要加上—rotate引數:

/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --all --rotate

2. 啟動searchd守護程序

/usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf

3. 生成主索引

寫成shell指令碼,新增到crontab任務,設定成每天凌晨1點的時候重建主索引

/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --rotate index_search_main

4. 生成增量索引

寫成shell指令碼,新增到crontab任務,設定成每10分鐘執行一次

/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --rotate index_search_main_delta

5. 增量索引和主索引的合併

寫成shell指令碼,新增到計劃任務,每15分鐘跑一次

/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --merge index_search_main index_search_main_delta --rotate

6. 使用search命令在命令列對索引進行檢索

/usr/local/sphinx/bin/search --config /usr/local/sphinx/etc/sphinx.conf

相關推薦

sphinx配置檔案

sphinx的配置: 其結構組成主要如下: Source 源名稱1{                //指定資料來源 一些配置 } Index 索引名稱1{ Source=源名稱1 } Source 源名稱2{ 一些配置 } Index 索引名稱2{ Source=源名稱

三大框架(ssh)學習——配置檔案(一)

配置檔案詳解 指定web應用預設字符集 <constant name="struts.i18n.encoding" value="gbk" /> 此配置相當於: request.setCharacterEncoding(“gbk”); r

三大框架(ssh)學習——配置檔案(二)

多配置檔案實現 專案經常需要多人協作開發,但是如果大家都是用同一個struts.xml檔案,會互相影響不利於開發的正常開展。這樣,我們可以通過<include>元素指定多個配置檔案。 可以在src下面建立多個struts配置檔案。然後再struts.xml中分別引入: str

Nginx配置配置檔案

文章目錄 配置檔案 nginx.conf配置檔案詳解 用於除錯、定位問題的配置引數 正常執行必備的配置引數 優化效能的配置引數 事件相關配置 Fastcgi相關配置引數 常需要調整的引數 nginx作為web伺服器時使

Hibernate_day01---Hibernate環境搭建、配置檔案、核心api介紹

JavaEE三層結構對應的框架 1) web層:struts2框架 2) service層:spring框架 3)dao層:hibernate框架 -- 對資料庫進行crud操作 什麼是框架: 可複用的設計構件 作用:可以少寫一部分程式碼。使用框架寫程式,會幫我們實現一部

scrapy settings配置檔案

# -*- coding: utf-8 -*- # Scrapy settings for step8_king project # # For simplicity, this file contains only settings considered important or # comm

keepalived介紹及配置檔案

keepalived介紹 Keepalived軟體起初是專為LVS負載均衡軟體設計的,用來管理並監控LVS集群系統中各個服務節點的狀態,後來又加入了可以實現高可用的VRRP功能。因此,Keepalived除了能夠管理LVS軟體外,還可以作為其他服務(例如:Nginx、Hapr

Maven的pom.xml配置檔案

轉自: Maven的pom.xml配置檔案詳解  <!--父專案的座標。如果專案中沒有規定某個元素的值,那麼父專案中的對應值即為專案的預設值。 座標包括group ID,artifact ID和 version。-->  &

【MyBatis Generator】程式碼自動生成工具 generatorConfig.xml配置檔案

MyBatis Generator官網地址:http://www.mybatis.org/generator/index.html MyBaris Generator中文地址:http://mbg.cndocs.ml/ 在MBG中,最主要也最重要的,就是generatorConfig.xml

轉:ssm spring+springmvc+mybatis中的xml配置檔案

這幾天一直在整合SSM框架,雖然網上有很多已經整合好的,但是對於裡面的配置檔案並沒有進行過多的說明,很多人知其然不知其所以然,經過幾天的搜尋和整理,今天總算對其中的XML配置檔案有了一定的瞭解,所以拿出來一起分享一下,希望有不足的地方大家批評指正~~~ 首先   這篇文章暫時只對框架中所要用到的配

Spring Boot(二)配置檔案

簡介 Spring Boot使用“習慣由於配置”(專案中存在大量預設的配置,而且內建tomcat)的理念,讓你的無需手動進行配置就可以將專案執行起來。使用Spring Boot很容易建立一個獨立執行的、準生產級別的Spring框架的專案。同時,Spring Boot還提供一個全域性配置檔案對一些

Apache httpd.conf配置檔案

常用配置指令說明 1. ServerRoot:伺服器的基礎目錄,一般來說它將包含conf/和logs/子目錄,其它配置檔案的相對路徑即基於此目錄。預設為安裝目錄,不需更改。 語法:ServerRoot directory-path 如: ServerRoot "/usr/local/ap

spring配置檔案--真的蠻詳細

  spring配置檔案詳解--真的蠻詳細 轉自: http://book.51cto.com/art/201004/193743.htm 此處詳細的為我們講解了spring2.5的實現原理,感覺非常有用

Java程式設計師從笨鳥到菜鳥之(五十三)細談Hibernate(四)Hibernate常用配置檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

mosquitto配置檔案

安裝完成之後,所有配置檔案會被放置於/etc/mosquitto/目錄下,其中最重要的就是Mosquitto的配置檔案,即mosquitto.conf,以下是詳細的配置引數說明。 # ===========================================================

SpringBoot非官方教程 | 第二篇:Spring Boot配置檔案

springboot採納了建立生產就緒Spring應用程式的觀點。 Spring Boot優先於配置的慣例,旨在讓您儘快啟動和執行。在一般情況下,我們不需要做太多的配置就能夠讓spring boot正常執行。在一些特殊的情況下,我們需要做修改一些配置,或者需要有自己的配置屬性。 當我們

Nginx實戰之1.1-1.6 Nginx介紹,安裝及配置檔案

1.1 Nginx介紹 HTTP協議發展簡史 加粗  https://coding.net/u/aminglinux/p/nginx/git/blob/master/http/version.md  1991年釋出0.9版,只有GET方法,僅支援html,一個連線一個請求 &n

nginx主配置檔案

#定義Nginx執行的使用者和使用者組user www www; #nginx程序數,建議設定為等於CPU總核心數。worker_processes 8; #全域性錯誤日誌定義型別,[ debug | info | notice | warn | error | crit ]error_log /var/

Spring boot 配置檔案 (properties 和yml )

從其他框架來看 我們都有自己的配置檔案, hibernate有hbm,mybatis 有properties, 同樣, Spring boot 也有全域性配置檔案。 Springboot使用一個全域性的配置檔案,而且配置檔案的名字是固定的。 有兩種 application.properties

Spring Boot 配置檔案:自定義屬性、隨機數、多環境配置

相信很多人選擇Spring Boot主要是考慮到它既能兼顧Spring的強大功能,還能實現快速開發的便捷。我們在Spring Boot使用過程中,最直觀的感受就是沒有了原來自己整合Spring應用時繁多的XML配置內容,替代它的是在pom.xml中引入模組化的Starter POMs,其中各個模組都有自己的預