国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

linux下coreseek 安裝及使用方法詳解

2024-08-27 23:59:46
字體:
來源:轉載
供稿:網友

很多使用php+mysql數據庫的朋友都有可能使用到coreseek了,coreseek是一款非常不錯的中文全文檢索/搜索軟件了,下面小編就一起來看看吧.

一般站點都需要搜索功能,如果是php+mysql站點,建議選擇coreseek,如果是java站點建議使用lucene,coreseek 是一款很好的中文全文檢索/搜索軟件,支持高速建立索引、有很強的擴展性、支持分布式檢索,支持不同的搜索模式(’完全匹配’,’短語匹配’,’任一匹配’).

一、coreseek 安裝

1:安裝mmseg分詞庫

  1. wget http://www.coreseek.cn/uploads/csft/4.0/coreseek-3.2.14-beta.tar.gz 
  2. tar -zxvf coreseek-3.2.14-beta.tar.gz 
  3. cd coreseek-3.2.14-beta 
  4. cd mmseg-3.2.14 
  5. ./bootstrap     
  6. ./configure --prefix=/usr/local/mmseg3 #配置安裝目錄 
  7. make  
  8. make install 
  9. cd .. 

2:安裝coreseek

  1. cd csft-3.2.14 
  2. sh buildconf.sh  
  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/local/mysql 
  4. make  
  5. make install 
  6. cd.. 

3:測試mmseg分詞和coreseek檢索

  1. cd /usr/local/src/coreseek-3.2.14 
  2. cd testpack 
  3. cat var/test/test.xml    #現實的是中文的內容 
  4. /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml #顯示xml文件內容 
  5. /usr/local/coreseek/bin/indexer -c etc/csft.conf --all #建立索引 
  6. /usr/local/coreseek/bin/search -c etc/csft.conf # 進行搜索 

二、coreseek配置和使用

1:配置example.conf文件

  1. cd /usr/local/coreseek/etc 
  2. cp sphinx-min.conf.dist example.conf 

對example.conf的配置進行改造,變成我們所需的配置文件.

  1. source example 
  2.     type                    = mysql 
  3.     sql_host                = localhost 
  4.     sql_user                = *** 
  5.     sql_pass                = *** 
  6.     sql_db                    = *** 
  7.     sql_port                = 3306 
  8.     sql_sock            = /tmp/mysql.sock     
  9.     sql_query_pre            = SET NAMES utf8 
  10.     sql_query                = SELECT id,content FROM table_name #不管表的主鍵叫什么,查出來的結果都是為id 
  11.    sql_query_info_pre      = SET NAMES utf8                      #命令行查詢時,設置正確的字符集 
  12.    sql_query_info          = SELECT * FROM table WHERE id=$id  LIMIT 100#命令行查詢時,從數據庫讀取原始數據信息 
  13. #index定義 
  14. index example 
  15.     source            = example             #對應的source名稱 
  16.    path            = /usr/local/coreseek/var/data/example/ #請修改為實際使用的絕對路徑 
  17.    docinfo            = extern 
  18.     mlock            = 0 
  19.     morphology        = none 
  20.     min_word_len        = 1 
  21.     html_strip                = 0 
  22.     #中文分詞配置,詳情請查看:http://www.coreseek.cn/products-install/coreseek_mmseg/ 
  23.    charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux環境下設置,/符號結尾 
  24.    #charset_dictpath = etc/  #Windows環境下設置,/符號結尾,最好給出絕對路徑, 
  25.    charset_type        = zh_cn.utf-8 
  26. }  //Vevb.com 
  27.  
  28. #全局index定義 
  29. indexer 
  30.     mem_limit            = 128M 
  31. #searchd服務定義 
  32. searchd 
  33.     listen                  =   9312 
  34.     read_timeout        = 5 
  35.     max_children        = 60 
  36.     max_matches            = 1000 
  37.     seamless_rotate        = 0 
  38.     preopen_indexes        = 0 
  39.     unlink_old            = 1 
  40.     pid_file = /usr/local/coreseek/var/log/searchd_example.pid  #請修改為實際使用的絕對路徑,例如:/usr/local/coreseek/var/... 
  41.    log = /usr/local/coreseek/var/log/searchd_example.log  #請修改為實際使用的絕對路徑,例如:/usr/local/coreseek/var/... 
  42.    query_log = /usr/local/coreseek/var/log/query_example.log #請修改為實際使用的絕對路徑,例如:/usr/local/coreseek/var/... 

2:開啟searchd服務(這點很重要).

coreseek剛安裝后searchd服務是沒開啟的,需要先開啟,不然創建索引的時候會出錯,先在 /usr/local/src/coreseek/var/log下創建一個searchd_example.pid文件,然后執行下面的代碼:

  1. /usr/local/coreseek/bin/searchd --config /usr/local/coreseek/etc/example.conf 

3:創建索引

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

出現下面的提示:

  1. Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)] 
  2. Copyright (c) 2007-2011, 
  3. Beijing Choice Software Technologies Inc (http://www.coreseek.com) 
  4.  using config file '/usr/local/coreseek/etc/example.conf'... 
  5. indexing index 'example'... 
  6. collected 1 docs, 0.0 MB 
  7. sorted 0.0 Mhits, 100.0% done 
  8. total 1 docs, 631 bytes 
  9. total 0.005 sec, 118854 bytes/sec, 188.35 docs/sec 
  10. total 1 reads, 0.000 sec, 0.8 kb/call avg, 0.0 msec/call avg 
  11. total 5 writes, 0.000 sec, 0.5 kb/call avg, 0.0 msec/call avg 
  12. rotating indices: succesfully sent SIGHUP to searchd (pid=14094). 

說明coreseek已經可以使用了.

可以把創建索引的命令寫入crontab里面進行定時,實時更新索引.

4:php 和 coreseek 結合進行查詢

先下載sphinxapi,然后文件引入結合php進行查詢,下面更多參數的詳解和配置,可以參考 coreseek api php手冊.

  1. require_once('sphinxapi'); 
  2. $s = new SphinxClient(); 
  3. $s->SetServer('127.0.0.1','9312'); //設置searchd的主機名和TCP端口 
  4. $s->SetConnectTimeout(1); // 設置連接超時 
  5. $s->SetMatchMode(SPH_MATCH_BOOLEAN); //設置全文查詢的匹配模式 
  6. $page_size=20;//自己定義的頁數 
  7. $s->SetLimits($start,$page_size); //設置返回結果集偏移量和數目 
  8. $s->SetSortMode( SPH_SORT_EXTENDED,"good_count DESC, @id DESC" ); // 設置排序 
  9. $s->SetArrayResult(true);//控制搜索結果集的返回格式 
  10. $res = $s->Query($keyword,'*');// 執行搜索查詢 
  11. $res_list = $res['matches']; 

coreseek安裝遇到的錯誤和問題解決方案.

1、測試mmseg分詞的時候

執行:/usr/local/coreseek/bin/indexer -c etc/csft.conf --all

提示下面的錯誤:

  1. /usr/local/coreseek/bin/indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory 

原因:sphinx indexer的依賴庫ibmysqlclient.so.18找不到.

解決辦法:

vi /etc/ld.so.conf

加入 /usr/local/mysql/lib

然后運行 ldconfig 問題解決

2、執行索引的時候

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

提示下面的錯誤:

  1. FATAL: failed to open /usr/local/coreseek/var/data/ttd_article/.tmp.spl: No such file or directory, will not index. Try --rotate option. 

原因:source源找不到mysql.sock

解決辦法:在配置文件csft_ttd_search.conf(自己創建的文件)的 source源 加入下面的代碼.

sql_sock   = /tmp/mysql.sock

3、執行索引的時候,出現的警告,導致索引沒創建成功.

  1. WARNING: failed to open pid_file '/usr/local/coreseek/var/log/searchd_ttd_search.pid'. 
  2. WARNING: indices NOT rotated. 

原因:找不到searchd_ttd_search.pid文件

解決辦法:在’/usr/local/coreseek/var/log 下創建searchd_ttd_search.pid文件

再執行/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_ttd_search.conf –all –rotate

出現了另外一個警告:

  1. WARNING: failed to scanf pid from pid_file '/usr/local/coreseek/var/log/searchd_ttd_search.pid'. 
  2. WARNING: indices NOT rotated. 

原因:雖然創建了searchd_ttd_search.pid文件,但是里面沒有寫入進程id

解決辦法(根本原因):在執行索引之前沒有啟動searchd服務,因此執行下面的命令.

  1. /usr/local/coreseek/bin/searchd --config /usr/local/coreseek/etc/ttd_search.conf 

出現了期待已久的成功提示:

  1. Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)] 
  2. Copyright (c) 2007-2011, 
  3. Beijing Choice Software Technologies Inc (http://www.coreseek.com) 
  4. using config file '/usr/local/coreseek/etc/ttd_search.conf'... 
  5. listening on all interfaces, port=9312 
  6. rotating index 'mysql': success

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吴旗县| 南涧| 凤阳县| 高雄市| 丰城市| 新宾| 鱼台县| 浦东新区| 芒康县| 米林县| 黔西县| 邻水| 安远县| 北京市| 和田县| 巢湖市| 达州市| 南平市| 新田县| 龙陵县| 偏关县| 绩溪县| 富宁县| 漾濞| 渭源县| 商城县| 旬邑县| 辉南县| 内江市| 揭西县| 广南县| 五莲县| 颍上县| 多伦县| 色达县| 泽州县| 南汇区| 盱眙县| 大洼县| 台安县| 方山县|