Sphinx(Coreseek)安装和使用指南
1.安装
1.1安装mmseg
- ./bootstrap # 必须执行,不然安装会失败
- ./configure --prefix=/usr/local/mmseg-3.2. #指定安装目录
- make
- make install
1.2安装coreseek
- # 在csft-4.1/configure.ac中
- # 查找 AM_INIT_AUTOMAKE([-Wall -Werror foreign])
- # 更改 AM_INIT_AUTOMAKE([-Wall foreign])
- sh buildconf.sh # 必须执行,不然安装失败
- ./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
- # 在csft-4.1/src/sphinxexpr.cpp中
- # 查找 T val = ExprEval ( this->m_pArg, tMatch );
- # 替换 T val = this->ExprEval ( this->m_pArg, tMatch );
- make
- make install
2.配置
测试数据表结构
- CREATE TABLE `sph_counter` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `code` varchar(50) NOT NULL DEFAULT '',
- `max` int(10) unsigned NOT NULL,
- `add_time` datetime NOT NULL,
- PRIMARY KEY (`id`),
- UNIQUE KEY `code` (`code`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- CREATE TABLE `movie` (
- `movie_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '影片ID',
- `old_id` int(10) unsigned NOT NULL DEFAULT '' COMMENT '旧ID',
- `sn` varchar(50) NOT NULL COMMENT '影片番号',
- `title` varchar(255) NOT NULL COMMENT '片名',
- `cover` varchar(255) NOT NULL DEFAULT '' COMMENT '影片封面图',
- `publisher_id` int(10) unsigned NOT NULL COMMENT '发行商ID',
- `publish_date` date NOT NULL COMMENT '发行日期',
- `add_time` datetime NOT NULL COMMENT '添加时间',
- PRIMARY KEY (`movie_id`),
- UNIQUE KEY `sn` (`sn`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
coreseek主索引配置
- source main_javzoo_movie
- {
- type = mysql
- sql_host = 127.0.0.1
- sql_user = root
- sql_pass =
- sql_db = javzoo
- sql_port = # optional, default is
- sql_query = \
- SELECT movie_id, movie_id AS record_id, title \
- FROM movie WHERE movie_id >= $start AND movie_id <= $end ORDER BY movie_id ASC
- sql_query_pre = SET NAMES utf8
- sql_query_pre = REPLACE INTO sph_counter SET `code` = 'movie', `max` = (SELECT MAX(movie_id) FROM movie), add_time = NOW()
- sql_query_range = SELECT MIN(movie_id), (SELECT `max` FROM `sph_counter` WHERE `code` = 'movie') FROM movie
- sql_range_step =
- sql_attr_uint = record_id
- }
- index main_javzoo_movie_title
- {
- source = main_javzoo_movie
- path = /usr/local/coreseek-4.1/var/data/main_javzoo_movie_title
- mlock =
- morphology = none
- min_word_len =
- html_strip =
- docinfo = extern
- charset_type = zh_cn.utf-
- charset_dictpath = /usr/local/mmseg-3.2./etc
- ngram_len =
- }
3.增量配置
- source delta_javzoo_movie
- {
- type = mysql
- sql_host = 127.0.0.1
- sql_user = root
- sql_pass = shia802927
- sql_db = javzoo
- sql_port =
- sql_query_pre = SET NAMES utf8
- sql_query_range = SELECT (SELECT `max` FROM `sph_counter` WHERE `code` = 'movie'), MAX(movie_id) FROM movie
- sql_range_step =
- sql_query = \
- SELECT movie_id, movie_id AS record_id, title \
- FROM movie WHERE movie_id >= $start AND movie_id <= $end ORDER BY movie_id ASC
- sql_query_post = REPLACE INTO sph_counter SET `code` = 'movie', `max` = (SELECT MAX(movie_id) FROM movie), add_time = NOW()
- sql_attr_uint = record_id
- }
- index delta_javzoo_movie_title
- {
- source = delta_javzoo_movie
- path = /usr/local/coreseek-4.1/var/data/delta_javzoo_movie_title
- mlock =
- morphology = none
- min_word_len =
- html_strip =
- docinfo = extern
- charset_type = zh_cn.utf-
- charset_dictpath = /usr/local/mmseg-3.2./etc
- ngram_len =
- }
4.定时更新脚本
- #!/bin/sh -
- START_DATE=`date`
- echo start $ index @ $START_DATE
- if [ "$1" = "all" ]
- then
- /usr/local/coreseek-4.1/bin/indexer --config /usr/local/coreseek-4.1/etc/sphinx.conf --all --rotate >> /dev/null
- elif [ "$1" = "main" ]
- then
- /usr/local/coreseek-4.1/bin/indexer --config /usr/local/coreseek-4.1/etc/sphinx.conf main_javzoo_movie_title --rotate >> /dev/null
- elif [ "$1" = "delta" ]
- then
- /usr/local/coreseek-4.1/bin/indexer --config /usr/local/coreseek-4.1/etc/sphinx.conf delta_javzoo_movie_title --rotate >> /dev/null
- elif [ "$1" = "merge" ]
- then
- /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
- else
- echo error action!
- exit
- fi
- END_DATE=`date`
- if [ "$?" -eq "" ]
- then
- echo complete @ $END_DATE
- else
- echo error @ $END_DATE
- fi
- echo
用法
- # 更新全部索引
- sh sphinx_index.sh all
- # 更新主索引
- sh sphinx_index.sh main
- # 更新增量索引
- sh sphinx_index.sh delta
- # 合并增量和主索引
- sh sphinx_index.sh merge
备注
配合crond实现定时增量更新和合并
Sphinx(Coreseek)安装和使用指南的更多相关文章
- Sphinx(coreseek) 安装使用以及词库的扩展
1.Sphinx(coreseek) 是啥 一般而言,Sphinx是一个独立的全文搜索引擎:而Coreseek是一个支持中文的全文搜索引擎,意图为其他应用提供高速.低空间占用.高结果相关度的中文全文搜 ...
- sphinx,coreseek安装
sphinx是国外的一款搜索软件. coreseek是在sphinx的基础上,增加了中文分词功能,换句话说,就是支持了中文. Coreseek发布了3.2.14版本和4.1版本,其中的3.2.14版本 ...
- Coreseek安装测试配置指南(转)
Sphinx--强大的开源全文检索引擎,Coreseek--免费开源的中文全文检索引擎 软件版本:coreseek-4.1 mmseg-3.2.14 autoconf-2.64 老版本的coresee ...
- 【PHP高效搜索专题(1)】sphinx&Coreseek的介绍与安装
我们已经知道mysql中带有"%keyword%"条件的sql是不走索引的,而不走索引的sql在大数据量+大并发量的时候,不仅效率极慢还很有可能让数据库崩溃.那我们如何通过某些关键 ...
- 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 ...
- 搭建coreseek(sphinx+mmseg3)详细安装配置+php之sphinx扩展安装+php调用示例(转)
一个文档包含了安装.增量备份.扩展.api调用示例,省去了查找大量文章的时间. 搭建coreseek(sphinx+mmseg3)安装 [第一步] 先安装mmseg3 cd /var/install ...
- coreseek安装
一. Sphinx简介 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能.Sphinx可以非常容易的与 ...
- Sphinx学习之sphinx的安装篇
一. Sphinx简介 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能.Sphinx可以非常容易的与 ...
- coreseek 安装及使用方法详解
coreseek 安装及使用 一般站点都需要搜索功能,如果是php+mysql站点,建议选择coreseek,如果是java站点建议使用lucene,coreseek 是一款很好的中文全文检索/搜索软 ...
随机推荐
- [CF232E]Quick Tortoise
题目大意: 给你一个$n\times m(n,m\leq 500)$的格子,有一些是障碍物.从一个格子出发只能向下或向右走,有$q$组询问,每次询问从一个点是否能够到达另一个点. 思路: 分治. 两点 ...
- Flash 3D学习计划
1.理解并记住3D渲染的一般管线流程(一天). 2.理解世界,取景,投影变换,并理解投影坐标系(一天). 3.学习VB,IB相关,理解三角形顶点顺序:在屏幕上显示2D矩形,并实现缩放,平移,旋转(三天 ...
- 如何将netbeans生成的项目文件打包发布到其他的Tomcat服务器上?
首先在netbeans中将项目文件生成.war文件,一个war包就是有特性格式的jar包,它是将一个Web程序的所有内容进行压缩得到,在netbeans中,在项目名称上右击鼠标->"清 ...
- Android的数据存储方式概述
数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 ...
- sql server 2008 R2 数据库文件大小限制
select @@version SQL2005 分五个版本,如下所列: 1.Enterprise(企业版) 2.Development(开发版) 3.Workgroup,(工作群版) 4.Stand ...
- Javascript中的原型链、prototype、__proto__的关系
javascript 2016-10-06 1120 9 上图是本宝宝用Illustrator制作的可视化信息图,希望能帮你理清Javascript对象与__proto__.prototype和 ...
- perl一次读取多行文本的策略
在处理文本时,经常遇到这种情况:就是我们须要把两行文本做一个比較,然后选择性输出. 而在while(<FILEHAND>){do something}程序块中默认仅仅能一次读取一行.笔者在 ...
- 在vs2012中配置使用iisexpress
在vs2012中配置使用iisexpress vs2012支持基于iisexpress的web站点调试,这样可以尽可能与生产环境具备一样的环境. 但是,如果在vs2012中直接配置iis目录,通常 ...
- django 分页django-pure-pagination
虽然django自带了一个paginator,但不是很方便,我们使用django-pure-pagination github地址https://github.com/jamespacileo/dja ...
- 在使用springMVC时,我使用了@Service这样的注解,发现使用注解@Transactional声明的事务不起作用
问题出现的场景: 在使用spring mvc时,我使用了@Service这样的注解, 发现使用注解@Transactional声明的事务不起作用. 我的配置如下: <mvc:annotation ...