Sphinx/Coreseek簡介&安裝使用
Sphinx/Coreseek簡介&安裝使用
Sphinx/Coreseek簡介
在資料庫使用模糊匹配的時候,在資料量少的情況下,使用like '%keywork%'可以解決,但是在資料量大的情況下,查詢時間就變得難以忍受了。尤其是訪問量大的時候,僅僅靠mysql已經無法支撐業務。Sphinx是一個基於SQL的全文檢索引擎,可以結合MySQL,PostgreSQL做全文搜尋,它可以提供比資料庫本身更專業的搜尋功能,使得應用程式更容易實現專業化的全文檢索。Sphinx特別為一些指令碼語言設計搜尋API介面,如PHP,Python,Perl,Ruby等,同時為MySQL也設計了一個儲存引擎外掛。
Sphinx官網:http://sphinxsearch.com/
Sphinx下載地址:http://sphinxsearch.com/downloads/release/
Coreseek 是一款中文全文檢索/搜尋軟體,以GPLv2許可協議開源釋出,基於Sphinx研發並獨立釋出,專攻中文搜尋和資訊處理領域,適用於行業/垂直搜尋、論壇/站內搜尋、資料庫搜尋、文件/文獻檢索、資訊檢索、資料探勘等應用場景。對於中文的搜尋場景,coreseek比sphinx更為適合。
Coreseek官網:http://www.coreseek.cn/
Coreseek下載地址:http://www.coreseek.cn/products-install/
Coreseek安裝
linux下的安裝步驟:參考官方文件http://www.coreseek.cn/products-install/install_on_bsd_linux/
安裝完成後,在bin目錄下有幾個可執行檔案
-rwxr-xr-x 1 # # 6592748 Oct 15 2013 indexer #索引程式
-rwxr-xr-x 1 # # 6362996 Oct 15 2013 indextool
-rwxr-xr-x 1 # # 6434601 Oct 15 2013 search
-rwxr-xr-x 1 # # 7556446 Oct 15 2013 searchd #搜尋服務程式
-rwxr-xr-x 1 # # 6295538 Oct 15 2013 spelldump
Coreseek配置
安裝完成後,在/etc下面找到coreseek.conf配置檔案
#主索引資料來源——用於資料初始化
source article_main
{
type = mysql
sql_host = 127.0.0.1
sql_user = #資料庫賬號#
sql_pass = #資料庫密碼#
sql_db = #資料庫名稱#
sql_port = #資料庫埠號# # optional, default is 3306
sql_sock = /tmp/mysql.sock
sql_query_pre = SET NAMES utf8 #預執行語句,避免如果資料庫預設字符集不是utf8,會導致查詢不命中的情況#
sql_query = #查詢的sql語句#
#以下是SQL語句返回的值
sql_attr_uint = CATE_ID
sql_attr_uint = STATUS
sql_attr_uint = IS_ABLE
sql_attr_str2ordinal = SITE_ID
sql_attr_timestamp = ITIME
sql_ranged_throttle = 0
sql_query_info = SELECT * FROM article WHERE ID=$id
}
#增量索引資料來源——用於資料更新
source article_delta : article_main #這裡繼承了article_main的配置
{
sql_query_pre = SET NAMES utf8 #繼承方式,不能去掉該項
sql_query = #查詢的sql語句#
}
#主索引
index article_main
{
source = article_main
path = /usr/local/coreseek/var/data/article_main #指定索引的存放路徑
docinfo = extern
mlock = 0
morphology = none
charset_dictpath = /usr/local/mmseg3/etc/
min_word_len = 1
charset_type = zh_cn.utf-8
html_strip = 0
}
#增量索引
index article_delta : article_main
{
source = article_delta
path = /usr/local/coreseek/var/data/article_delta #指定索引的存放路徑
}
indexer
{
mem_limit = 1024M
}
searchd
{
#listen = 127.0.0.1:9312
log = /usr/local/coreseek/var/log/searchd.log
query_log = /usr/local/coreseek/var/log/query.log
read_timeout = 5
client_timeout = 5
max_children = 50
pid_file = /usr/local/coreseek/var/log/searchd.pid
max_matches = 1000 #最大匹配數,api的值不能大於該值
seamless_rotate = 0
preopen_indexes = 0
unlink_old = 1
}
啟動coreseek服務並使用PHP連線
bin/searchd -c etc/coreseek.conf
這裡使用PHP呼叫coreseek的服務,在官網上下載SphinxClient這個class即可,以下是簡單的示例程式碼:
$cl = new SphinxClient ();
$cl->_maxmatches = 200;
$cl->SetServer ('127.0.0.1',9312);
$cl->SetConnectTimeout ( 3 );//超時時間
$cl->SetArrayResult ( true );//返回陣列格式
$cl->SetLimits($start, $page_size);
$cl->SetMatchMode ( SPH_MATCH_ANY );
$cl->SetRankingMode( SPH_RANK_PROXIMITY_BM25);
$cl->SetFilter("is_able", array(1));
$cl->SetSortMode ( SPH_SORT_EXTENDED , '@relevance DESC, ITIME DESC ' );//先按時間段排序,再按相關度排序。
$cl->AddQuery ($keyword, "article_main,article_delta");
$results = $cl->RunQueries();
定時更新文章
由於文章內容會不斷變化,每次更新重新索引所有文章是不現實的,coreseek提供了增量索引。我們制定了索引的更新策略。
#每天凌晨4點更新一次
00 04 * * * /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/coreseek.conf --all --rotate
#十分鐘更新一次
*/10 * * * * /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/coreseek.conf article_delta --rotate
相關文章
- Linux Sphinx/Coreseek安裝 Mysql全文檢索LinuxMySql
- Centos下Sphinx中文分詞編譯安裝測試---CoreSeekCentOS中文分詞編譯
- sphinx 簡介以及安裝 以及php擴充開啟PHP
- Locust 簡介及安裝使用
- 編譯安裝CoreSeek-4.1編譯
- coreseek實戰(一):windows下coreseek的安裝與測試Windows
- 最新版gradle安裝使用簡介Gradle
- PostgreSQL簡介及安裝SQL
- Rancher簡介與安裝
- RabbitMQ簡介及安裝MQ
- Django簡介及安裝Django
- jQuery簡介和安裝jQuery
- Allure簡介及安裝
- Docker簡介及安裝Docker
- KVM簡介,安裝及常見使用詳解
- Coreseek 安裝出現 Makefile.in 檔案找不到
- scrapy的簡介與安裝
- Redis簡介與安裝(Windows)RedisWindows
- Zabbix 簡介與yum安裝
- java簡介--環境安裝Java
- MySQL簡介和安裝方法MySql
- Tomcat安裝包簡介Tomcat
- Mule的簡介和安裝
- Docker常規安裝簡介Docker
- Centos下Sphinx的下載與編譯安裝CentOS編譯
- consul的簡介及安裝
- 1.Cobaltstrike 安裝與簡介
- PostgreSQL簡介及安裝步驟SQL
- Mysql maatkit 的安裝和簡介MySql
- 1、Linux簡介及安裝Linux
- Chaosblade簡介及安裝部署
- lnmp+coreseek實現站內全文檢索(安裝篇)LNMP
- RTC ClearQuest Bridge 企業級安裝配置和使用簡介
- Docker 理論簡介及安裝教程Docker
- 01 . Vue簡介,原理,環境安裝Vue
- Spring的簡介安裝及配置Spring
- HP9000系列簡介與安裝
- kaldi+pdnn 的簡介與安裝DNN