1.安装

1.1安装mmseg

  1. ./bootstrap # 必须执行,不然安装会失败
  2. ./configure --prefix=/usr/local/mmseg-3.2. #指定安装目录
  3. make
  4. make install

1.2安装coreseek

  1. # 在csft-4.1/configure.ac中
  2. # 查找 AM_INIT_AUTOMAKE([-Wall -Werror foreign])
  3. # 更改 AM_INIT_AUTOMAKE([-Wall foreign])
  4. sh buildconf.sh # 必须执行,不然安装失败
  5. ./configure --prefix=/usr/local/coreseek-4.1 --with-mysql --with-mysql-includes=/usr/local/mysql-5.6./include --with-mysql-libs=/usr/local/mysql-5.6./lib --with-mmseg --with-mmseg-includes=/usr/local/mmseg-3.2./include/mmseg --with-mmseg-libs=/usr/local/mmseg-3.2./lib
  6. # 在csft-4.1/src/sphinxexpr.cpp中
  7. # 查找 T val = ExprEval ( this->m_pArg, tMatch );
  8. # 替换 T val = this->ExprEval ( this->m_pArg, tMatch );
  9. make
  10. make install

2.配置

测试数据表结构

  1. CREATE TABLE `sph_counter` (
  2. `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  3. `code` varchar(50) NOT NULL DEFAULT '',
  4. `max` int(10) unsigned NOT NULL,
  5. `add_time` datetime NOT NULL,
  6. PRIMARY KEY (`id`),
  7. UNIQUE KEY `code` (`code`)
  8. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  9.  
  10. CREATE TABLE `movie` (
  11. `movie_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '影片ID',
  12. `old_id` int(10) unsigned NOT NULL DEFAULT '' COMMENT '旧ID',
  13. `sn` varchar(50) NOT NULL COMMENT '影片番号',
  14. `title` varchar(255) NOT NULL COMMENT '片名',
  15. `cover` varchar(255) NOT NULL DEFAULT '' COMMENT '影片封面图',
  16. `publisher_id` int(10) unsigned NOT NULL COMMENT '发行商ID',
  17. `publish_date` date NOT NULL COMMENT '发行日期',
  18. `add_time` datetime NOT NULL COMMENT '添加时间',
  19. PRIMARY KEY (`movie_id`),
  20. UNIQUE KEY `sn` (`sn`)
  21. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

coreseek主索引配置

  1. source main_javzoo_movie
  2. {
  3. type = mysql
  4.  
  5. sql_host = 127.0.0.1
  6. sql_user = root
  7. sql_pass =
  8. sql_db = javzoo
  9. sql_port = # optional, default is
  10.  
  11. sql_query = \
  12. SELECT movie_id, movie_id AS record_id, title \
  13. FROM movie WHERE movie_id >= $start AND movie_id <= $end ORDER BY movie_id ASC
  14. sql_query_pre = SET NAMES utf8
  15. sql_query_pre = REPLACE INTO sph_counter SET `code` = 'movie', `max` = (SELECT MAX(movie_id) FROM movie), add_time = NOW()
  16. sql_query_range = SELECT MIN(movie_id), (SELECT `max` FROM `sph_counter` WHERE `code` = 'movie') FROM movie
  17. sql_range_step =
  18.  
  19. sql_attr_uint = record_id
  20.  
  21. }
  22.  
  23. index main_javzoo_movie_title
  24. {
  25. source = main_javzoo_movie
  26. path = /usr/local/coreseek-4.1/var/data/main_javzoo_movie_title
  27. mlock =
  28. morphology = none
  29. min_word_len =
  30. html_strip =
  31. docinfo = extern
  32. charset_type = zh_cn.utf-
  33. charset_dictpath = /usr/local/mmseg-3.2./etc
  34. ngram_len =
  35. }

3.增量配置

  1. source delta_javzoo_movie
  2. {
  3. type = mysql
  4.  
  5. sql_host = 127.0.0.1
  6. sql_user = root
  7. sql_pass = shia802927
  8. sql_db = javzoo
  9. sql_port =
  10.  
  11. sql_query_pre = SET NAMES utf8
  12. sql_query_range = SELECT (SELECT `max` FROM `sph_counter` WHERE `code` = 'movie'), MAX(movie_id) FROM movie
  13. sql_range_step =
  14. sql_query = \
  15. SELECT movie_id, movie_id AS record_id, title \
  16. FROM movie WHERE movie_id >= $start AND movie_id <= $end ORDER BY movie_id ASC
  17. sql_query_post = REPLACE INTO sph_counter SET `code` = 'movie', `max` = (SELECT MAX(movie_id) FROM movie), add_time = NOW()
  18.  
  19. sql_attr_uint = record_id
  20. }
  21.  
  22. index delta_javzoo_movie_title
  23. {
  24. source = delta_javzoo_movie
  25. path = /usr/local/coreseek-4.1/var/data/delta_javzoo_movie_title
  26. mlock =
  27. morphology = none
  28. min_word_len =
  29. html_strip =
  30. docinfo = extern
  31. charset_type = zh_cn.utf-
  32. charset_dictpath = /usr/local/mmseg-3.2./etc
  33. ngram_len =
  34. }

4.定时更新脚本

  1. #!/bin/sh -
  2. START_DATE=`date`
  3. echo start $ index @ $START_DATE
  4.  
  5. if [ "$1" = "all" ]
  6. then
  7. /usr/local/coreseek-4.1/bin/indexer --config /usr/local/coreseek-4.1/etc/sphinx.conf --all --rotate >> /dev/null
  8. elif [ "$1" = "main" ]
  9. then
  10. /usr/local/coreseek-4.1/bin/indexer --config /usr/local/coreseek-4.1/etc/sphinx.conf main_javzoo_movie_title --rotate >> /dev/null
  11. elif [ "$1" = "delta" ]
  12. then
  13. /usr/local/coreseek-4.1/bin/indexer --config /usr/local/coreseek-4.1/etc/sphinx.conf delta_javzoo_movie_title --rotate >> /dev/null
  14. elif [ "$1" = "merge" ]
  15. then
  16. /usr/local/coreseek-4.1/bin/indexer --config /usr/local/coreseek-4.1/etc/sphinx.conf --merge main_javzoo_movie_title delta_javzoo_movie_title --rotate >> /dev/null
  17. else
  18. echo error action!
  19. exit
  20. fi
  21.  
  22. END_DATE=`date`
  23. if [ "$?" -eq "" ]
  24. then
  25. echo complete @ $END_DATE
  26. else
  27. echo error @ $END_DATE
  28. fi
  29. echo

用法

  1. # 更新全部索引
  2. sh sphinx_index.sh all
  3. # 更新主索引
  4. sh sphinx_index.sh main
  5. # 更新增量索引
  6. sh sphinx_index.sh delta
  7. # 合并增量和主索引
  8. sh sphinx_index.sh merge

备注

配合crond实现定时增量更新和合并

Sphinx(Coreseek)安装和使用指南的更多相关文章

  1. Sphinx(coreseek) 安装使用以及词库的扩展

    1.Sphinx(coreseek) 是啥 一般而言,Sphinx是一个独立的全文搜索引擎:而Coreseek是一个支持中文的全文搜索引擎,意图为其他应用提供高速.低空间占用.高结果相关度的中文全文搜 ...

  2. sphinx,coreseek安装

    sphinx是国外的一款搜索软件. coreseek是在sphinx的基础上,增加了中文分词功能,换句话说,就是支持了中文. Coreseek发布了3.2.14版本和4.1版本,其中的3.2.14版本 ...

  3. Coreseek安装测试配置指南(转)

    Sphinx--强大的开源全文检索引擎,Coreseek--免费开源的中文全文检索引擎 软件版本:coreseek-4.1 mmseg-3.2.14 autoconf-2.64 老版本的coresee ...

  4. 【PHP高效搜索专题(1)】sphinx&Coreseek的介绍与安装

    我们已经知道mysql中带有"%keyword%"条件的sql是不走索引的,而不走索引的sql在大数据量+大并发量的时候,不仅效率极慢还很有可能让数据库崩溃.那我们如何通过某些关键 ...

  5. Linux下coreseek环境安装 、mysql数据源、sphinx扩展安装及php调用

    一.安装m4-1.4.13.autoconf-2.64.automake-1.11.libtool-2.2.6 下载安装m4-1.4.13.autoconf-2.64.automake-1.11.li ...

  6. 搭建coreseek(sphinx+mmseg3)详细安装配置+php之sphinx扩展安装+php调用示例(转)

    一个文档包含了安装.增量备份.扩展.api调用示例,省去了查找大量文章的时间. 搭建coreseek(sphinx+mmseg3)安装 [第一步] 先安装mmseg3 cd /var/install ...

  7. coreseek安装

    一.  Sphinx简介 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能.Sphinx可以非常容易的与 ...

  8. Sphinx学习之sphinx的安装篇

    一.  Sphinx简介 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能.Sphinx可以非常容易的与 ...

  9. coreseek 安装及使用方法详解

    coreseek 安装及使用 一般站点都需要搜索功能,如果是php+mysql站点,建议选择coreseek,如果是java站点建议使用lucene,coreseek 是一款很好的中文全文检索/搜索软 ...

随机推荐

  1. [CF232E]Quick Tortoise

    题目大意: 给你一个$n\times m(n,m\leq 500)$的格子,有一些是障碍物.从一个格子出发只能向下或向右走,有$q$组询问,每次询问从一个点是否能够到达另一个点. 思路: 分治. 两点 ...

  2. Flash 3D学习计划

    1.理解并记住3D渲染的一般管线流程(一天). 2.理解世界,取景,投影变换,并理解投影坐标系(一天). 3.学习VB,IB相关,理解三角形顶点顺序:在屏幕上显示2D矩形,并实现缩放,平移,旋转(三天 ...

  3. 如何将netbeans生成的项目文件打包发布到其他的Tomcat服务器上?

    首先在netbeans中将项目文件生成.war文件,一个war包就是有特性格式的jar包,它是将一个Web程序的所有内容进行压缩得到,在netbeans中,在项目名称上右击鼠标->"清 ...

  4. Android的数据存储方式概述

    数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 ...

  5. sql server 2008 R2 数据库文件大小限制

    select @@version SQL2005 分五个版本,如下所列: 1.Enterprise(企业版) 2.Development(开发版) 3.Workgroup,(工作群版) 4.Stand ...

  6. Javascript中的原型链、prototype、__proto__的关系

    javascript  2016-10-06  1120  9 上图是本宝宝用Illustrator制作的可视化信息图,希望能帮你理清Javascript对象与__proto__.prototype和 ...

  7. perl一次读取多行文本的策略

    在处理文本时,经常遇到这种情况:就是我们须要把两行文本做一个比較,然后选择性输出. 而在while(<FILEHAND>){do something}程序块中默认仅仅能一次读取一行.笔者在 ...

  8. 在vs2012中配置使用iisexpress

    在vs2012中配置使用iisexpress   vs2012支持基于iisexpress的web站点调试,这样可以尽可能与生产环境具备一样的环境. 但是,如果在vs2012中直接配置iis目录,通常 ...

  9. django 分页django-pure-pagination

    虽然django自带了一个paginator,但不是很方便,我们使用django-pure-pagination github地址https://github.com/jamespacileo/dja ...

  10. 在使用springMVC时,我使用了@Service这样的注解,发现使用注解@Transactional声明的事务不起作用

    问题出现的场景: 在使用spring mvc时,我使用了@Service这样的注解, 发现使用注解@Transactional声明的事务不起作用. 我的配置如下: <mvc:annotation ...