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

首頁 > 系統 > Linux > 正文

CoreSeek Mysql 安裝與測試(中文分詞與中文全文檢索)

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

CoreSeek是一款專門為中文免費開源的中文全文檢索系統,它是一個支持Tb級的全文數據索引了,下面我們來看看CoreSeek Mysql 安裝與測試.

CoreSeek安裝比較麻煩,官方手冊對此的支持并不算很好,CoreSeek是基于Sphinx的中文的分詞和全文檢索軟件,本文是在MAC OS X系統下安裝和調試CoreSeek.

安裝過程中報錯如果是警告warning則忽略,如果是錯誤error,則必須要處理,CoreSeek是支持三種數據來源的,一種是眾所周知的Mysql,一種是XML文件,另一種是Python,而Python則是萬能數據類型,在本CoreSeek安裝測試教程中只示例數據源是XML文件和MYSQL.

官方手冊地址:http://www.coreseek.cn/products-install/install_on_macosx

一、設置環境變量

  1. $ export PATH=/usr/local/bin:$PATH 
  2. $ export LC_ALL=zh_CN.UTF-8 
  3. $ export.UTF-8 

二、安裝依賴庫:m4、autoconf、automake、libtool。

注意:不要brew install 來安裝,因為對安裝的庫的版本有要求.

  1. $ curl -O -L 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. $ sudo ./configure --prefix=/usr/local/opt 
  5. $ sudo make 
  6. $ sudo make install 
  7. $ cd .. 
  8.  
  9. $ curl -O -L http://mirrors.kernel.org/gnu/autoconf/autoconf-2.65.tar.gz 
  10. $ tar -xzvf autoconf-2.65.tar.gz 
  11. $ cd autoconf-2.65 
  12. $ sudo ./configure --prefix=/usr/local/opt 
  13. $ sudo make 
  14. $ sudo make install 
  15. $ cd .. 
  16.  
  17. $ curl -O -L http://mirrors.kernel.org/gnu/automake/automake-1.11.tar.gz 
  18. $ tar xzvf automake-1.11.tar.gz 
  19. $ cd automake-1.11 
  20. $ ./configure --prefix=/usr/local/opt 
  21. $ sudo make 
  22. $ sudo make install 
  23. $ cd .. 
  24.  
  25. $ curl -O -L http://mirrors.kernel.org/gnu/libtool/libtool-2.2.6b.tar.gz 
  26. $ tar xzvf libtool-2.2.6b.tar.gz 
  27. $ cd libtool-2.2.6b 
  28. $ sudo ./configure --prefix=/usr/local/opt 
  29. $ sudo make 
  30. $ sudo make install 
  31. $ cd .. 

三、安裝Mysql

1、mysql 的安裝自行安裝

2、查找mysql頭文件地址和庫文件地址,我用brew install mysql,安裝的Mysql,頭文件地址和庫文件地址分別是/usr/local/Cellar/mysql/5.6.17_1/include/mysql 和 /usr/local/Cellar/mysql/5.6.17_1/lib

頭文件地址就是mysql.h所在的目錄,庫文件地址就是libmysqlclient.a所在的目錄.

四、下載Coreseek

  1. $ curl -O -L http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz 
  2. $ tar xzvf coreseek-3.2.14.tar.gz 
  3. $ cd coreseek-3.2.14 

在coreseek-3.2.14文件夾下有mmseg和csft和testpack,mmseg是分詞服務,csft是CoreSeek的核心服務,testpack是測試用例.

五、安裝mmseg

  1. $ cd mmseg-3.2.14 
  2. $ sudo ./bootstrap 
  3. $ sudo ./configure --prefix=/usr/local/opt/mmseg3 
  4. $ sudo make 
  5. $ sudo make install 
  6. $ cd .. 

在make的時候,可能會報錯,如下.

  1. file included from css/ThesaurusDict.cpp:6: 
  2. ../src/css/ThesaurusDict.h:12:17: error: expected namespace name 
  3. using namespace __gnu_cxx; 
  4. css/ThesaurusDict.cpp:79:15: warning: result of comparison against a string 
  5. literal is unspecified (use strncmp instead) [-Wstring-compare] 
  6. if (filename == "-") { 
  7.     ^ ~~~ 
  8.     css/ThesaurusDict.cpp:116:15: warning: result of comparison against a string 
  9. literal is unspecified (use strncmp instead) [-Wstring-compare] 
  10. if (filename != "-") { 
  11.     ^ ~~~ 
  12.     2 warnings and 1 error generated. 
  13.     make[2] : *** [ThesaurusDict.lo] Error 1 
  14. make[1]: *** [install-recursive] Error 1 

這個時候make進程已經終止,原因是因為編譯器版本太高導致的,修改方法:1是降低編譯器版本,反正我打死也不愿意,方法2如下:

  1. vim src/css/ThesaurusDict.h 
  2. ###在頭部找到:#include <string> 
  3. ###再其下加入一行代碼: 
  4. #include <ext/hash_map> 

修改完后保存退出,繼續重新sudo make一下,就沒有error級錯誤了,然后sudo make install即可.

六、安裝coreseek

  1. $ cd csft-3.2.14 
  2. $ sudo sh buildconf.sh 
  3. $ sudo ./configure --prefix=/usr/local/opt/coreseek  --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/opt/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/opt/mmseg3/lib/ --with-mysql --with-mysql-includes=/usr/local/Cellar/mysql/5.6.17_1/include/mysql --with-mysql-libs=/usr/local/Cellar/mysql/5.6.17_1/lib 
  4. $ sudo make  //Vevb.com 
  5. $ sudo make install 
  6. $ cd .. 

在./configure時,參數--with-mysql-includes是mysql頭文件位置,--with-mysql-libs是mysql庫文件位置,請在本CoreSeek安裝教程第三步所記錄的mysql頭文件地址和庫文件地址,替換.

在make時,可能又會出現error級的錯誤,如果出現make程序是停止運行的,必須要修改,錯誤提示如下:

  1. phinxexpr.cpp:1047:11: error: use of undeclared identifier 'ExprEval' 
  2. T val = ExprEval ( this->m_pArg, tMatch ); // 'this' fixes gcc ... 

解決方法:修改源代碼.

vim src/sphinxexpr.cpp

將T val = ExprEval(this->m_pArg,tMatch)替換為T val = this->ExprEval(this->m_pArg,tMatch).

就是加了個“this->”,是把這個文件中所有的ExprEval()函數都修改了,有三四個吧,修改后保存退出,重新sudo make,然后sudo make install即可.

七、測試XML數據

  1. $ cd testpack 
  2.  
  3. #測試編碼是否正確顯示中文,如果不是中文則請看本CoreSeek安裝測試教程第一步 
  4.  
  5. $ cat var/test/test.xml 
  6.  
  7. # 測試mmseg分詞的效果 
  8. $ /usr/local/opt/mmseg3/bin/mmseg -d /usr/local/opt/mmseg3/etc var/test/test.xml 
  9.  
  10. # 建立檢索的索引。 
  11. $ /usr/local/opt/coreseek/bin/indexer -c etc/csft.conf --all 
  12.  
  13. #全文搜索“網絡搜索” 
  14. $ /usr/local/opt/coreseek/bin/search -c etc/csft.conf 網絡搜索 
  15. 如果在建立檢索的索引出錯,FATAL: failed to lock var/data/xml.spl: Resource temporarily unavailable, will not index. Try --rotate option. 
  16. 則修改為 
  17. $ /usr/local/opt/coreseek/bin/indexer -c etc/csft.conf --all --rotate 

八、測試MYSQL數據源

cd testpack

1、修改配置文件,文件位于testpack/etc/csft_mysql.conf

vim etc/csft_mysql.conf

我的csft_mysql.conf文件如下:記得把mysql 的sql_host,sql_user,sql_pass,sql_db,sql_port修改為自己的,并且把路勁都修改為你自己的路徑.

MySQL數據源配置,詳情請查看:http://www.coreseek.cn/products-install/mysql/,請先將var/test/documents.sql導入數據庫,并配置好以下的MySQL用戶密碼數據庫.

  1. #源定義 
  2. source mysql 
  3.     type   = mysql 
  4.  
  5.     sql_host   = localhost 
  6.     sql_user   = root 
  7.     sql_pass   = 8823150 
  8.     sql_db     = test 
  9.     sql_port   = 3306 
  10.     sql_query_pre   = SET NAMES utf8 
  11.  
  12.     sql_query                = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content FROM documents 
  13.       #sql_query第一列id需為整數 
  14.             #title、content作為字符串/文本字段,被全文索引 
  15.     sql_attr_uint   = group_id  #從SQL讀取到的值必須為整數 
  16.     sql_attr_timestamp  = date_added #從SQL讀取到的值必須為整數,作為時間屬性 
  17.  
  18.     sql_query_info_pre      = SET NAMES utf8                                        #命令行查詢時,設置正確的字符集 
  19.     sql_query_info            = SELECT * FROM documents WHERE id=$id #命令行查詢時,從數據庫讀取原始數據信息 
  20.  
  21. #index定義 
  22. index mysql 
  23.     source            = mysql             #對應的source名稱 
  24.     path            = /Users/lane/coreseek-3.2.14/testpack/var/data/mysql #請修改為實際使用的絕對路徑,例如:/usr/local/coreseek/var/... 
  25.     docinfo            = extern 
  26.     mlock            = 0 
  27.     morphology        = none 
  28.     min_word_len        = 1 
  29.     html_strip                = 0 
  30.  
  31.     #中文分詞配置,詳情請查看:http://www.coreseek.cn/products-install/coreseek_mmseg/ 
  32.     charset_dictpath = /usr/local/opt/mmseg3/etc/ #BSD、Linux環境下設置,/符號結尾 
  33.     #charset_dictpath = etc/                             #Windows環境下設置,/符號結尾,最好給出絕對路徑,例如:C:/usr/local/coreseek/etc/... 
  34.     charset_type        = zh_cn.utf-8 
  35.  
  36. #全局index定義 
  37. indexer 
  38.     mem_limit            = 128M 
  39.  
  40. #searchd服務定義 
  41. searchd 
  42.     listen                  =   9312 
  43.     read_timeout        = 5 
  44.     max_children        = 30 
  45.     max_matches            = 1000 
  46.     seamless_rotate        = 0 
  47.     preopen_indexes        = 0 
  48.     unlink_old            = 1 
  49.     pid_file = /Users/lane/coreseek-3.2.14/testpack/var/log/searchd_mysql.pid  #請修改為實際使用的絕對路徑,例如:/usr/local/coreseek/var/... 
  50.     log = /Users/lane/coreseek-3.2.14/testpack/var/log/searchd_mysql.log        #請修改為實際使用的絕對路徑,例如:/usr/local/coreseek/var/... 
  51.     query_log = /Users/lane/coreseek-3.2.14/testpack/var/log/query_mysql.log #請修改為實際使用的絕對路徑,例如:/usr/local/coreseek/var/... 

2、給mysql導入測試數據

mysql的測試數據我們用的是test數據庫,documents數據表,請自行確保test數據庫存在,我們一起來建documents表,這個表的結構和數據都是由CoreSeek提供的,在testpack/var/test/documents.sql.

  1. mysql -u root -p 
  2.  
  3. #輸入密碼 
  4.  
  5. #看看,數據庫test在不在 
  6. mysql > show databases; 
  7. #如果test庫不在請創建 
  8. mysql > create database test; 
  9.  
  10. use test; 
  11.  
  12. #導入數據 
  13. source /Users/lane/coreseek-3.2.14/testpack/var/test/documents.sql 

3、測試:

  1. $ cd testpack 
  2.  
  3. # 建立檢索的索引 
  4. $ /usr/local/opt/coreseek/bin/indexer -c etc/csft_mysql.conf --all 
  5.  
  6. #全文搜索“網絡搜索” 
  7. $ /usr/local/opt/coreseek/bin/search -c etc/csft_mysql.conf 網絡搜索 

如果提示有錯誤,請檢查csft_mysql.conf的路徑、mysql的配置等信息是否正確.

九、測試PHP+MYSQL

1、先啟動服務

/usr/local/opt/coreseek/bin/searchd -c etc/csft.conf

2、PHP文件

  1. <?php 
  2. require ( "/Users/lane/coreseek-3.2.14/testpack/api/sphinxapi.php" ); 
  3. //Vevb.com 
  4. $cl = new SphinxClient (); 
  5. $cl->SetServer ( '127.0.0.1', 9312); 
  6. $cl->SetConnectTimeout ( 3 ); 
  7. $cl->SetArrayResult ( true ); 
  8. $cl->SetMatchMode ( SPH_MATCH_ANY); 
  9. $res = $cl->Query ( '網絡搜索'"*" ); 
  10. print_r($cl); 
  11. print_r($res); 
  12. ?> 

我在Linux折騰了一天沒有搞定,在MAC搞了半天搞定了,等搞定Linux后再發Linux的.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 毕节市| 多伦县| 南丰县| 宣恩县| 眉山市| 鸡泽县| 东至县| 贵阳市| 榆树市| 六枝特区| 施甸县| 道真| 双辽市| 桐城市| 册亨县| 平凉市| 轮台县| 右玉县| 蒙城县| 双辽市| 襄垣县| 乳源| 南木林县| 石河子市| 晋宁县| 象州县| 萨迦县| 武冈市| 和龙市| 托克托县| 道孚县| 常山县| 织金县| 红河县| 江城| 平塘县| 定安县| 冷水江市| 剑阁县| 尤溪县| 双鸭山市|