Linux下coreseek環境安裝 、mysql數據源、sphinx擴展安裝及php調用

1、安裝m4-1.4.1三、autoconf-2.6四、automake-1.十一、libtool-2.2.6php

  下載安裝m4-1.4.1三、autoconf-2.6四、automake-1.十一、libtool-2.2.6,coreseek安裝搭好安裝環境。html

 1     m4-1.4.13下載地址: http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz  
 2     $ tar -xzvf m4-1.4.13.tar.gz  
 3     $ cd m4-1.4.13  
 4     $ ./configure --prefix=/usr/local  
 5     $ make && make install  
 6     $ cd ..  
 7       
 8     autoconf-2.64下載地址: http://mirrors.kernel.org/gnu/autoconf/autoconf-2.64.tar.gz  
 9     $ tar -xzvf autoconf-2.64.tar.gz  
10     $ cd autoconf-2.64  
11     $ ./configure --prefix=/usr/local  
12     $ make && make install  
13     $ cd ..  
14       
15     automake-1.11下載地址: http://mirrors.kernel.org/gnu/automake/automake-1.11.tar.gz  
16     $ tar xzvf automake-1.11.tar.gz  
17     $ cd automake-1.11  
18     $ ./configure --prefix=/usr/local  
19     $ make && make install  
20     $ cd ..  
21       
22     libtool-2.2.6下載地址: http://mirrors.kernel.org/gnu/libtool/libtool-2.2.6b.tar.gz  
23     $ tar xzvf libtool-2.2.6b.tar.gz  
24     $ cd libtool-2.2.6b  
25     $ ./configure --prefix=/usr/local  
26     $ make && make install  
27     $ cd ..  

 

2、安裝mmseg(coreseek所使用的詞典)mysql

1   tar xzvf coreseek-3.2.14.tar.gz
2   cd mmseg-3.2.14
3   ./bootstrap    #輸出的warning信息能夠忽略,若是出現error則須要解決
4   ./configure --prefix=/usr/local/mmseg3
5   make && make install

 

3、安裝coreseek(sphinx)sql

1   cd csft-3.2.14
2   sh buildconf.sh    #輸出的warning信息能夠忽略,若是出現error則須要解決
3   ./configure --prefix=/usr/local/coreseek  --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql=/usr/
4   (若是出現mysql問題,須檢查是否安裝mysql,--with-mysql=mysql的安裝位置)
5   make && make install

 

4、測試mmesg分詞,coreseek搜索(須要預先設置好字符集爲zh_CN.UTF-8,確保正確顯示中文) 數據庫

1   $ cd testpack  
2   $ cat var/test/test.xml    #此時應該正確顯示中文  
3   $ /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml  
4   $ /usr/local/coreseek/bin/indexer -c etc/csft.conf --all  
5   $ /usr/local/coreseek/bin/search -c etc/csft.conf 網絡搜索  

若是出現 xmlpipe2 support NOT compiled in. To use xmlpipe2, install missing XML libra 的錯誤apache

執行命令:bootstrap

1   apt-get install expat-devel

重現編譯coreseek,步驟三,注意make clean.vim

測試結果以下:api

1   $ cd testpack  
2   $ cat var/test/test.xml    #此時應該正確顯示中文  
3   $ /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml  
4   $ /usr/local/coreseek/bin/indexer -c etc/csft.conf --all  
5   $ /usr/local/coreseek/bin/search -c etc/csft.conf 網絡搜索
6   返回結果:
7   words:
8   1. '網絡': 1 documents, 1 hits
9   2. '搜索': 2 documents, 5 hits

 

5、創建mysql數據源的配置文件安全

編寫配置文件my.conf:

 1 #源定義
 2 source files
 3 {
 4         type            = mysql
 5         sql_host        = localhost
 6         sql_user        = root
 7         sql_pass        = f103
 8         sql_db          = test
 9         sql_port        = 3306  #default is 3306
10         sql_query_pre   = SET NAMES utf8
11         sql_query       = SELECT id,filepath,filename,filesize,filemtime,filelabel As label from files
12         sql_query_info_pre      = SET NAMES utf8
13     sql_query_info            = SELECT * FROM files WHERE id=$id  #命令行查>詢時,從數據庫讀取原始數據信息
14 }
15 
16 #索引
17 index files
18 {
19         source          = files
20         path            = /usr/local/coreseek/var/data/files
21         docinfo         = extern
22         charset_dictpath = /usr/local/mmseg3/etc/
23         charset_type    = zh_cn.utf-8
24         mlock           = 0
25         morphology      = none
26         min_word_len    = 1
27         html_strip      = 0
28 }
29 
30 #索引器
31 indexer
32 {
33         mem_limit       = 128M
34 }
35 
36 #守護進程
37 searchd
38 {
39         port            = 9312
40         log             = /usr/local/coreseek/var/log/searchd_files.log
41         query_log       = /usr/local/coreseek/var/log/query_files.log
42         read_timeout    = 5
43         max_children    = 30
44         pid_file        = /usr/local/coreseek/var/log/searchd_files.pid
45         max_matches     = 1000
46         seamless_rotate = 1
47         preopen_indexes = 0
48         unlink_old      = 1
49 }

6、創建test數據庫,其中包含表files

id:id值,主鍵,自增

filepath:文件路徑

filename:文件名

filesize:文件大小

filemtime:文件最後修改日期

filelabel:文件標籤、描述

 1 CREATE TABLE files (
 2     id int primary key not null auto_increment,
 3     filepath varchar(255) not null,
 4     filename varchar(255) not null,
 5     filesize varchar(255) not null,
 6     filemtime varchar(255) not null,
 7     filelabel text
 8 );
 9 
10 INSERT INTO files (id,filepath, filename, filesize,filemtime,filelabel) VALUES (1,'/mnt/fuse/text1.txt', 'text1.txt', '1M', '2014-07-23 10:00:00', '測試文件');
11 
12 INSERT INTO files (id,filepath, filename, filesize,filemtime,filelabel) VALUES (2,'/mnt/fuse/test2.txt', 'text2.txt', '241M', '2014-07-23 11:09:11', '據國外媒體報道,谷歌將巨資收購百度,涉及金額高達300億美圓。谷歌藉此重返大陸市場。
13   該報道稱,目前谷歌與百度已經達成了收購協議,將擇機對外公佈。百度的管理層將100%保留,但會將項目縮減,包括有啊商城,以及目前實施不力的鳳巢計劃。正在進行測試階段的視頻網站qiyi.com將輸入更多的Youtube資源。
14 (YouTube在大陸區因內容審查暫不能訪問)。
15   該消息彷佛獲得了谷歌CEO施密特的確認,在其twitter上用簡短而曖昧的文字進行了表述:「 Withdraw from that market? u\'ll also see another result, just wait... 」 意思是:從那個市場退出?你還會看到另一個結果。
16 毫無疑問,那個市場指的就是中國大陸。而另外的結果,對應此媒體報道,就是收購百度,從而曲線返回大陸搜索市場。
17   在最近剛剛結束的深圳IT領袖峯會上,李彥宏曾言,「谷歌沒有退出中國,由於還在香港」。也彷佛在驗證被收購的這一事實。
18   截止發稿,百度的股價爲597美圓,市值爲207億美圓。谷歌以高達300億美圓的價格,實際溢價高達50%。而谷歌市值高達1796億美圓,並且手握大量現金,做這樣的決策也在情理之中。
19     近日,不少媒體都在報道百度創始人、CEO李彥宏的兩次拒購:一次是百度上市前夕,李彥宏拒絕谷歌的併購,這個細節在2月28日央視虎年首期對話節目中獲得首次披露﹔一次是在百度國際化戰略中,拒絕採用海外併購的方式,>而是採起了從日本市場開始的海外自主發展之路。這也讓筆者由此開始思考民族品牌的發展之路。
20   收購是打壓中國品牌的慣用伎倆
21   2010年2月28日,央視經濟頻道《對話》節目昨晚推出虎年首期節目,百度董事長兼CEO李彥宏做爲嘉賓作客節目。李彥宏首度談及2005年百度上市前夕,谷歌CEO施密特曾祕密造訪百度時祕密談話的內容,主要是勸阻百度上市,李
22 彥宏斷然拒絕了施密特的「好意」。今天看來,施密特當日也許已有不祥的預感,這個幾百人的小公司終有一日會成爲他們的大麻煩。
23   本期《對話》一經播出,便引起了業界討論。
24   外資品牌經過收購打壓中國品牌的案例不勝枚舉。從以往跨國企業併購的中國品牌來看,真正讓其活下來的品牌並很少,要麼被雪藏,要麼被低端化。
25   所以,2005年百度沒有接受Google的收購邀請,堅持自主發展,這對於保護中國品牌,維護中國網民信息安全有着相當重要的做用。當前百度市場份額高達76%,並持續增加,這也充分驗證了李彥宏拒絕收購決策的正確性。
26   今天看來,「百度一下」已經成爲3億多中國網民的網絡生存法則,而直到今天環視全球,真正能像中國同樣,擁有本身獨立搜索引擎的只有4個國家!咱們也許應該慶幸當時李彥宏的選擇。這個故事也告訴咱們,中國企業作品牌還>要靠本身!
27   收購也多是中國企業走出去的陷阱
28   一樣在2月28日,亞布力第十屆年會上,李彥宏在論壇上指出:「咱們和不少其它公司的國際化路子是很不同的,咱們不是去買一個國外的公司,」,李彥宏解釋了百度率先選擇日本做爲走出去的對象的緣由,由於日本和中國一衣
29 帶水的近鄰優點,日本的市場規模,在日本也沒有一家獨大的搜索引擎。
30   中國企業收購這些外資品牌目的是「借船出海」。外資品牌進入中國是收購中國優質品牌,而中國企業進入國外市場的收購策略偏偏相反,這也是中國企業借船出海屢屢失敗的緣由所在。
31   筆者認爲,中國互聯網公司走出去要依靠自身發展,並不能單純依靠收購。李彥宏在百度成立伊始就抱定了國際化決心,使百度真正在面對國際化機遇時,更加冷靜和具備前瞻力。李彥宏也認可當前百度在日本還處於初級發展階>段,但他也預言「2012年,百度與Google劃洋而治」,對此咱們拭目以待!');
32 
33 INSERT INTO files (id,filepath, filename, filesize,filemtime,filelabel) VALUES (3,'/mnt/fuse/text3.txt', 'text3.txt', '31M', '2014-07-23 10:20:20', '測試,音樂,劉泉,查不到這條記錄嗎!!!');

 

7、執行索引(查詢、測試前必須執行一次)

1     /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/my.conf --all --rotate  

 

8、啓動searchd服務

1   # /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/my.conf  

若是第一次出現pid文件不存在的狀況,可使用:

1   # /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/my.conf  --pidfile

 

9、查詢關鍵字

 1 # /usr/local/coreseek/bin/search -c /usr/local/coreseek/etc/my.conf  測試
 2 Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)]
 3 Copyright (c) 2007-2011,
 4 Beijing Choice Software Technologies Inc (http://www.coreseek.com)
 5 
 6  using config file '/usr/local/coreseek/etc/my.conf'...
 7 index 'files': query '測試 ': returned 3 matches of 3 total in 0.003 sec
 8 
 9 displaying matches:
10 1. document=1, weight=1
11     id=1
12     filepath=/mnt/fuse/anime.mp4
13     filename=anime.mp4
14     filesize=287M
15     filemtime=2014-07-23 11:09:11
16     filelabel=測試數據,到底有沒有!!!
17 2. document=2, weight=1
18     id=2
19     filepath=/mnt/fuse/test1.txt
20     filename=test1.txt
21     filesize=7M
22     filemtime=2014-07-23 11:28:11
23     filelabel=據國外媒體報道,谷歌將巨資收購百度,涉及金額高達300億美圓。谷歌藉此重返大陸市場。
24   該報道稱,目前谷歌與百度已經達成了收購協議,將擇機對外公佈。百度的管理層將100%保留,但會將項目縮減,包括有啊商城,以及目前實施不力的鳳巢計劃。正在進行測試階段的視頻網站qiyi.com將輸入更多的Youtube資源。
25 (YouTube在大陸區因內容審查暫不能訪問)。
26   該消息彷佛獲得了谷歌CEO施密特的確認,在其twitter上用簡短而曖昧的文字進行了表述:「 Withdraw from that market? u'll also see another result, just wait... 」 意思是:從那個市場退出?你還會看到另一個結果。
27 毫無疑問,那個市場指的就是中國大陸。而另外的結果,對應此媒體報道,就是收購百度,從而曲線返回大陸搜索市場。
28   在最近剛剛結束的深圳IT領袖峯會上,李彥宏曾言,「谷歌沒有退出中國,由於還在香港」。也彷佛在驗證被收購的這一事實。
29   截止發稿,百度的股價爲597美圓,市值爲207億美圓。谷歌以高達300億美圓的價格,實際溢價高達50%。而谷歌市值高達1796億美圓,並且手握大量現金,做這樣的決策也在情理之中。
30     近日,不少媒體都在報道百度創始人、CEO李彥宏的兩次拒購:一次是百度上市前夕,李彥宏拒絕谷歌的併購,這個細節在2月28日央視虎年首期對話節目中獲得首次披露﹔一次是在百度國際化戰略中,拒絕採用海外併購的方式,>而是採起了從日本市場開始的海外自主發展之路。這也讓筆者由此開始思考民族品牌的發展之路。
31   收購是打壓中國品牌的慣用伎倆
32   2010年2月28日,央視經濟頻道《對話》節目昨晚推出虎年首期節目,百度董事長兼CEO李彥宏做爲嘉賓作客節目。李彥宏首度談及2005年百度上市前夕,谷歌CEO施密特曾祕密造訪百度時祕密談話的內容,主要是勸阻百度上市,李
33 彥宏斷然拒絕了施密特的「好意」。今天看來,施密特當日也許已有不祥的預感,這個幾百人的小公司終有一日會成爲他們的大麻煩。
34   本期《對話》一經播出,便引起了業界討論。
35   外資品牌經過收購打壓中國品牌的案例不勝枚舉。從以往跨國企業併購的中國品牌來看,真正讓其活下來的品牌並很少,要麼被雪藏,要麼被低端化。
36   所以,2005年百度沒有接受Google的收購邀請,堅持自主發展,這對於保護中國品牌,維護中國網民信息安全有着相當重要的做用。當前百度市場份額高達76%,並持續增加,這也充分驗證了李彥宏拒絕收購決策的正確性。
37   今天看來,「百度一下」已經成爲3億多中國網民的網絡生存法則,而直到今天環視全球,真正能像中國同樣,擁有本身獨立搜索引擎的只有4個國家!咱們也許應該慶幸當時李彥宏的選擇。這個故事也告訴咱們,中國企業作品牌還>要靠本身!
38   收購也多是中國企業走出去的陷阱
39   一樣在2月28日,亞布力第十屆年會上,李彥宏在論壇上指出:「咱們和不少其它公司的國際化路子是很不同的,咱們不是去買一個國外的公司,」,李彥宏解釋了百度率先選擇日本做爲走出去的對象的緣由,由於日本和中國一衣
40 帶水的近鄰優點,日本的市場規模,在日本也沒有一家獨大的搜索引擎。
41   中國企業收購這些外資品牌目的是「借船出海」。外資品牌進入中國是收購中國優質品牌,而中國企業進入國外市場的收購策略偏偏相反,這也是中國企業借船出海屢屢失敗的緣由所在。
42   筆者認爲,中國互聯網公司走出去要依靠自身發展,並不能單純依靠收購。李彥宏在百度成立伊始就抱定了國際化決心,使百度真正在面對國際化機遇時,更加冷靜和具備前瞻力。李彥宏也認可當前百度在日本還處於初級發展階>段,但他也預言「2012年,百度與Google劃洋而治」,對此咱們拭目以待!
43 3. document=3, weight=1
44     id=3
45     filepath=/mnt/fuse/test2.txt
46     filename=test2.txt
47     filesize=17M
48     filemtime=2014-07-01 11:28:11
49     filelabel=音樂文件,劉泉,測試用用,查不出來嗎
50 
51 words:
52 1. '測試': 3 documents, 3 hits
53 
54 # /usr/local/coreseek/bin/search -c /usr/local/coreseek/etc/my.conf  音樂
55 Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)]
56 Copyright (c) 2007-2011,
57 Beijing Choice Software Technologies Inc (http://www.coreseek.com)
58 
59  using config file '/usr/local/coreseek/etc/my.conf'...
60 index 'files': query '音樂 ': returned 1 matches of 1 total in 0.003 sec
61 
62 displaying matches:
63 1. document=3, weight=1
64     id=3
65     filepath=/mnt/fuse/test2.txt
66     filename=test2.txt
67     filesize=17M
68     filemtime=2014-07-01 11:28:11
69     filelabel=音樂文件,劉泉,測試用用,查不出來嗎
70 
71 words:
72 1. '音樂': 1 documents, 1 hits

 

9、安裝sphinx擴展

一、安裝libsphinxclient

1     # cd /home/liuquan/Desktop/coreseek/coreseek-3.2.14/csft-3.2.14/api/libsphinxclient  
2     # ./configure  --prefix=/usr/local/sphinxclient        
3     # make && make install

二、安裝sphinx的PHP擴展

 1   下載地址:http://pecl.php.net/package/sphinx  
 2   # tar zxvf sphinx-1.3.0.tgz  
 3   # cd sphinx-1.3.0  
 4   # phpize  (若是沒有phpize,須要apt-get install php5-dev)
 5   # ./configure --with-php-config=/usr/bin/php-config --with-sphinx=/usr/local/sphinxclient  
 6   # make && make install  

三、修改配置

1     # cd /etc/php5/conf.d
2     # vim sphinx.ini
3     #
4     # 修改sphinx.ini,添加extension=sphinx.so 
5     # service apache2 restart  

查看phpinfo,sphinx擴展是否成功

 

10、php代碼測試

 

 1 <?php  
 2     $s = new SphinxClient;  
 3     $s->setServer("127.0.0.1", 9312);  
 4   
 5     $s->setMatchMode(SPH_MATCH_PHRASE);  
 6     $s->setMaxQueryTime(30);  
 7     $res = $s->query("測試",'files'); #[測試]關鍵字,[files]數據源source  
 8     
 9     var_dump($res);
10     echo "<br>";
11     
12     $value = array_keys($res['matches']);
13     var_dump($value);  
14     echo "<br>";
15 ?>
相關文章
相關標籤/搜索