朋友讓我寫一篇關於使用sphinx
的教程,想了想我對sphinx
的掌握程度,還不足以對他寫些什麼教程之類的。但,總要寫點什麼吧!那就從怎麼建索引開始好了。
從最簡單的索引開始建立好了(此處省去了sphinx的安裝過程)。
-- 建立索引表
create
table sphinx_searchs( id int(10) unsigned auto_increment, key
varchar(20) not
null, primary
key id) enginer=innodb;
# 全域性設定
source src1
# 繼承資料庫設定
source product : src1
# 索引檔案設定
index product
下面對以上的設定進行說明。
source product : src1
資料來源設定
建立乙個資料來源,他的資訊繼承自src1
,繼承和程式類的繼承一樣,子物件可以對父物件的值進行覆蓋。使用繼承可以省略我們編寫重複的設定資訊。
index product
索引的設定:
/opt/sphinx/bin/indexer--
config
/opt/sphinx/config
.conf--
all/opt/sphinx/bin/searchd--
config
/opt/sphinx/config
.conf
進行搜尋
<?php
$sphinx = new sphinxclient;
$sphinx->setserver('127.0.0.1',9312);
$result = $sphinx->query('樹脂擺飾','product');
到此,無需太多的設定,暫時拋棄複雜,繁瑣的過濾功能,簡簡單單的實現了索引引擎核心功能——標題檢索。
除此,大家可以試試var_dump($result)
以下方式檢索之間,結果有什麼區別?
$result = $sphinx->query('*樹脂擺飾','product');
$result = $sphinx->query('樹脂擺飾*','product');
$result = $sphinx->query('*樹脂擺飾*','product');
sphinx搜尋引擎優化及測試
2年前工作中的內容,已成過眼煙雲,分享一下,歡迎交流。1.之前的優化效果 之前對sphinx執行緒處理,網路io做了很多優化 netty epoll libevent 索引部分也做了優化,從目前測試結果來看,效能提公升已經到了瓶頸,尤其是全部搜尋,執行緒排程,網路 io優化對於這種查詢方式幫助很小。...
開源搜尋引擎Sphinx 中啟動多個搜尋程序的方法
要在同一機器上啟動多個sphinx搜尋程序searchd,必須為不同的程序指定不同的配置檔案 sphinx.conf 其中搜尋程序的埠號不能相同,即 listen 0.0.0.0 3312 中的預設埠3312 必須更改為乙個系統不在使用的埠。如果要指定不同的資料庫,必須更改 sql db dbnam...
搜尋引擎 索引
正排索引 文件編號,單詞編號,單詞的數量,單詞出現的位置。倒排索引 1,單詞詞典,儲存單詞以及統計資訊,單詞在記錄表中的便宜,可常駐記憶體,用雜湊表儲存。2,記錄表,單詞對應的文件集合,記錄單詞出現的數目 位置。文件採用差分變長編碼。其中文件可按編號公升序排列 可利用差分編碼 也可按出現次數排列,可...