Ubuntu下Coreseek的安装配置

运维 系统运维
Ubuntu系统相较于windows系统来说,有许多功能与性能强大的地方。而且ubuntu系统是一个完全免费的操作系统,所以以后越来越多的用户会开始使用ubuntu系统。那下面学学ubuntu系统下Coreseek的安装配置吧。

Ubuntu系统相较于windows系统来说,有许多功能与性能强大的地方。而且ubuntu系统是一个完全免费的操作系统,所以以后越来越多的用户会开始使用ubuntu系统。那下面学学ubuntu系统下Coreseek的安装配置吧。

一切按照官方的说明文档来安装,但到最好配置时却老配置老出错。最终只能再google一下,按下面的配置才算搞定。刚玩coreseek,对一些参数还不是很熟悉,但又想配置起来玩下,没有好好地看官方说明文档呵呵。

防止出现编译错误,先安装以下程序

  1. yum -y install mysql mysql-devel php-mysql qt4-mysql python python-dev gcc-c++ gtk+ libtool automake autoconf glibc-common expat-devel 

1、安装

wget http://www.coreseek.cn/uploads/csft/3.1/Source/csft-3.1.tar.gz ####coreseek源文件

wget http://www.coreseek.cn/uploads/csft/3.1/Source/mmseg-3.1.tar.gz #####coreseek所使用的词典

tar zxvf csft-3.1.tar.gz

tar zxvf mmseg-3.1.tar.gz

#####在安装coreseek前必须先安装mmseg

  1. cd mmseg-3.1  
  2.  
  3. ./configure –prefix=/usr/local/mmseg  
  4.  
  5. make  
  6.  
  7. make install 

######## 安装coreseek ########

##这里不使用python数据源,若需要,请加上 –with-python,在mmseg上一定要对应路径

  1. ./configure –prefix=/usr/local/coreseek –with-mmseg-includes=/usr/local/mmseg/include/mmseg –with-mmseg-libs=/usr/local/mmseg/lib –without-iconv 

指定–enable-id64选项会打开64位文档ID和词ID的支

  1. make  
  2.  
  3. make install 

若无问题,安装完毕后在/usr/local/下生成 coreseek目录及其下文件。

接下来要生成 mmseg词库及配置文件:

cd /usr/loca/mmseg

/usr/local/mmseg/bin/mmseg -u /usr/local/src/mmseg-3.1/data/unigram.txt ###unigram.txt是对应的词典文件,将会生成unigram.txt.uni

cd ../coreseek

mkdir dict ###创建字典目录

cp /usr/local/src/mmseg-3.1/data/unigram.txt.uni dict/uni.lib ###把创建的词典复制到dict

vim dict/mmseg.ini ####创建mmseg的配置文件,此文件在coreseek的windows版本已自带!

  1. mmseg.ini:  
  2.  
  3. [mmseg]  
  4.  
  5. merge_number_and_ascii=1;  
  6.  
  7. number_and_ascii_joint=-;  
  8.  
  9. compress_space=0;  
  10.  
  11. seperate_number_ascii=1

至此,mmseg配置完毕!下一步配置csft.conf——coreseek的配置文件

  1. source article  
  2.  
  3. {  
  4.  
  5. type = mysql 
  6.  
  7. sql_host = localhost 
  8.  
  9. sql_user = root 
  10.  
  11. sql_pass = jiaxian 
  12.  
  13. sql_db = test 
  14.  
  15. sql_port = 3306 # optional, default is 3306  
  16.  
  17. sql_query_pre = SET NAMES utf8  
  18.  
  19. #sql_query_pre = SET SESSION query_cache_type=OFF ##这个可以关闭sql查询缓存  
  20.  
  21. #sql_query = SELECT id, classid, checked, title, newstime, newstext FROM article  
  22.  
  23. sql_query_range = SELECT MIN(id),MAX(id) FROM article  
  24.  
  25. sql_range_step = 1000 
  26.  
  27. sql_query = SELECT id, classid, checked, title, newstime, newstext FROM article WHERE id>=$start AND id<=$end  
  28.  
  29. sql_attr_uint = classid 
  30.  
  31. sql_attr_uint = checked 
  32.  
  33. sql_attr_uint = newstime 
  34.  
  35. sql_query_info = select * from article where id=$id  
  36.  
  37. }  
  38.  
  39. index article  
  40.  
  41. {  
  42.  
  43. source = article 
  44.  
  45. path = /usr/local/coreseek/var/data/article  
  46.  
  47. docinfo = extern 
  48.  
  49. charset_type = zh_cn.utf-8 ###指定coreseek的编码  
  50.  
  51. charset_dictpath = /usr/local/coreseek/dict #####coreseek字典文件  
  52.  
  53. min_prefix_len = 0 
  54.  
  55. min_infix_len = 0 
  56.  
  57. min_word_len = 2 
  58.  
  59. ngram_len = 1 
  60.  
  61. ngram_chars = U+4E00..U+9FBF, U+3400..U+4DBF, U+20000..U+2A6DF, U+F900..U+FAFF,\  
  62.  
  63. U+2F800..U+2FA1F, U+2E80..U+2EFF, U+2F00..U+2FDF, U+3100..U+312F, U+31A0..U+31BF,\  
  64.  
  65. U+3040..U+309F, U+30A0..U+30FF, U+31F0..U+31FF, U+AC00..U+D7AF, U+1100..U+11FF,\  
  66.  
  67. U+3130..U+318F, U+A000..U+A48F, U+A490..U+A4CF  
  68.  
  69. html_strip = 0 
  70.  
  71. }  
  72.  
  73. indexer  
  74.  
  75. {  
  76.  
  77. mem_limit = 256M 
  78.  
  79. }  
  80.  
  81. searchd  
  82.  
  83. {  
  84.  
  85. address = 0.0.0.0  
  86.  
  87. log = /usr/local/coreseek/var/log/searchd.log  
  88.  
  89. query_log = /usr/local/coreseek/var/log/query.log  
  90.  
  91. read_timeout = 5 
  92.  
  93. max_children = 30 
  94.  
  95. pid_file = /usr/local/coreseek/var/log/searchd.pid  
  96.  
  97. max_matches = 1000 
  98.  
  99. seamless_rotate = 1 
  100.  

 #p#

表的结构

`

  1. article`  
  2.  
  3. DROP TABLE IF EXISTS `article`;  
  4.  
  5. CREATE TABLE IF NOT EXISTS `article` (  
  6.  
  7. `id` int(11) NOT NULL AUTO_INCREMENT,  
  8.  
  9. `classid` smallint(6) NOT NULL DEFAULT ’0′,  
  10.  
  11. `checked` tinyint(1) NOT NULL DEFAULT ’0′,  
  12.  
  13. `title` varchar(200) NOT NULL DEFAULT ”,  
  14.  
  15. `newstime` int(10) NOT NULL DEFAULT ’0′,  
  16.  
  17. `newstext` mediumtext NOT NULL,  
  18.  
  19. PRIMARY KEY (`id`),  
  20.  
  21. KEY `checked` (`checked`),  
  22.  
  23. KEY `newstime` (`newstime`),  
  24.  
  25. KEY `classid` (`classid`)  
  26.  
  27. ENGINE=MyISAM DEFAULT CHARSET=utf8;  
  28.  
  29. INSERT INTO `article` (`id`, `classid`, `checked`, `title`, `newstime`, `newstext`) SELECT `id`, `classid`, `checked`, `title`, `newstime`, `newstext` FROM `test` where id < 1000 

建立索引:

  1. /usr/local/coreseek/bin/indexer –config /usr/local/coreseek/dict/csft.conf –all –rotate 

使用CLI端测试一下:

  1. /usr/local/coreseek/bin/search -c /usr/local/coreseek/dict/cnal.conf -i url_quick 铝 

启动Sphinx守护进程(searchd)

  1. /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/dict/csft.conf  
  2.  
  3. /usr/local/coreseek/bin/searchd –stop -c /usr/local/coreseek/dict/csft.conf 

2、出错

CentOS 编译sphinx时老出现xmlUnknownEncoding 错误

  1. libsphinx.a(sphinx.o): In function `xmlUnknownEncoding’:  
  2.  
  3. /var/nfs_root/csft-3.1/src/sphinx.cpp:19072: undefined reference to `libiconv_open’  
  4.  
  5. /var/nfs_root/csft-3.1/src/sphinx.cpp:19090: undefined reference to `libiconv’  
  6.  
  7. /var/nfs_root/csft-3.1/src/sphinx.cpp:19096: undefined reference to `libiconv_close’  
  8.  
  9. libsphinx.a(tokenizer_zhcn.o): In function `CSphTokenizer_zh_CN_GBK::GetLocalBuffer(unsigned char*, int, unsigned char*)’:  
  10.  
  11. /var/nfs_root/csft-3.1/src/tokenizer_zhcn.cpp:327: undefined reference to `libiconv’  
  12.  
  13. libsphinx.a(tokenizer_zhcn.o): In function `CSphTokenizer_zh_CN_UTF8_Private::GetConverterOutput(char const*, char const*)’:  
  14.  
  15. /var/nfs_root/csft-3.1/src/tokenizer_zhcn.cpp:79: undefined reference to `libiconv_open’  
  16.  
  17. /var/nfs_root/csft-3.1/src/tokenizer_zhcn.cpp:82: undefined reference to `libiconv’  
  18.  
  19. libsphinx.a(tokenizer_zhcn.o): In function `CSphTokenizer_zh_CN_GBK::SetBuffer(unsigned char*, int)’:  
  20.  
  21. /var/nfs_root/csft-3.1/src/tokenizer_zhcn.cpp:355: undefined reference to `libiconv’  
  22.  
  23. libsphinx.a(tokenizer_zhcn.o): In function `CSphTokenizer_zh_CN_UTF8_Private::GetConverter(char const*, char const*)’:  
  24.  
  25. /var/nfs_root/csft-3.1/src/tokenizer_zhcn.cpp:63: undefined reference to `libiconv_open’  
  26.  
  27. /var/nfs_root/csft-3.1/src/tokenizer_zhcn.cpp:66: undefined reference to `libiconv’  
  28.  
  29. libsphinx.a(tokenizer_zhcn.o): In function `~CSphTokenizer_zh_CN_UTF8_Private’:  
  30.  
  31. /var/nfs_root/csft-3.1/src/tokenizer_zhcn.cpp:36: undefined reference to `libiconv_close’  
  32.  
  33. /var/nfs_root/csft-3.1/src/tokenizer_zhcn.cpp:38: undefined reference to `libiconv_close’  
  34.  
  35. /var/nfs_root/csft-3.1/src/tokenizer_zhcn.cpp:36: undefined reference to `libiconv_close’  
  36.  
  37. /var/nfs_root/csft-3.1/src/tokenizer_zhcn.cpp:38: undefined reference to `libiconv_close’  
  38.  
  39. /var/nfs_root/csft-3.1/src/tokenizer_zhcn.cpp:36: undefined reference to `libiconv_close’  
  40.  
  41. libsphinx.a(tokenizer_zhcn.o):/var/nfs_root/csft-3.1/src/tokenizer_zhcn.cpp:38: more undefined references to `libiconv_close’ follow  
  42.  
  43. collect2: ld returned 1 exit status  
  44.  
  45. make[2]: *** [indexer] Error 1  
  46.  
  47. make[2]: Leaving directory `/var/nfs_root/csft-3.1/src’  
  48.  
  49. make[1]: *** [all] Error 2  
  50.  
  51. make[1]: Leaving directory `/var/nfs_root/csft-3.1/src’  
  52.  
  53. make: *** [all-recursive] Error 1  
  54.  
  55. 处理结果:  
  56.  
  57. Add ‘-liconv’ to LIBS in src/Makefile  
  58.  
  59. from  
  60.  
  61. LIBS = -lm -lexpat -L/usr/local/lib  
  62.  
  63. to  
  64.  
  65. LIBS = -lm -lexpat -liconv -L/usr/local/lib 

总结:

希望本文介绍的Ubuntu下Coreseek的安装配置的过程能够对读者有所帮助,更多有关linux系统的知识还有待于读者去探索和学习。

【编辑推荐】

  1. 让你的Ubuntu系统呈现下雪效果
  2. Ubuntu下安装Mac buntu后遇到的问题解决
  3. 如何利用sudo命令为Ubuntu分配管理权限?
  4. 在ubuntu下如何安装MPlayer播放高清电影?
  5. 如何修改ubuntu系统中sudo命令输入密码的时间?
责任编辑:韩亚珊 来源: 之秀网
相关推荐

2011-03-31 10:31:18

Ubuntu安装MRTG

2011-03-11 16:42:38

Ubuntu安装LAMP

2011-03-02 09:31:13

2011-03-02 09:31:13

2009-07-09 15:58:40

Ubuntu JDK安

2011-03-01 09:09:39

Ubuntuvsftpd安装

2011-12-01 10:15:26

Ubuntu 11.0OpenNebula

2011-04-01 12:22:35

2020-09-25 17:10:13

LinuxMySQL 8.0

2012-08-17 09:48:55

MongoDB

2021-01-12 09:55:29

LinuxCntlm代理

2010-02-05 13:37:07

Ubuntu安装

2011-03-29 10:22:33

2022-02-15 09:19:55

Ubuntu 20.Grub2Linux

2010-02-05 14:57:31

Ubuntu SVN

2014-07-30 13:37:15

ubuntu14.04bochs

2011-02-23 09:55:33

Centos安装vsftpd

2011-03-31 09:02:22

Windows安装MRTG

2010-05-25 11:24:30

SVN安装配置

2012-10-11 14:59:31

CentosFastDFS
点赞
收藏

51CTO技术栈公众号