Sphinx(Coreseek)安装和使用指南

1.安装

1.1安装mmseg

./bootstrap # 必须执行,不然安装会失败
./configure --prefix=/usr/local/mmseg-3.2.14 #指定安装目录
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.21/include --with-mysql-libs=/usr/local/mysql-5.6.21/lib --with-mmseg --with-mmseg-includes=/usr/local/mmseg-3.2.14/include/mmseg --with-mmseg-libs=/usr/local/mmseg-3.2.14/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 ‘0‘ 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        = 3306    # optional, default is 3306

    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        = 10000

    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            = 0
    morphology        = none
    min_word_len        = 1
    html_strip        = 0
    docinfo            = extern
    charset_type        = zh_cn.utf-8
    charset_dictpath    = /usr/local/mmseg-3.2.14/etc
    ngram_len        = 0
}

3.增量配置

source delta_javzoo_movie
{
    type            = mysql

    sql_host        = 127.0.0.1
    sql_user        = root
    sql_pass        = shia802927
    sql_db            = javzoo
    sql_port        = 3306

    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        = 10000
    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            = 0
    morphology        = none
    min_word_len        = 1
    html_strip        = 0
    docinfo            = extern
    charset_type        = zh_cn.utf-8
    charset_dictpath    = /usr/local/mmseg-3.2.14/etc
    ngram_len        = 0
}

4.定时更新脚本

 1 #!/bin/sh -
 2 START_DATE=`date`
 3 echo start $1 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 1
20 fi
21
22 END_DATE=`date`
23 if [ "$?" -eq "0" ]
24 then
25     echo complete @ $END_DATE
26 else
27     echo error @ $END_DATE
28 fi
29 echo 

用法

# 更新全部索引
sh sphinx_index.sh all
# 更新主索引
sh sphinx_index.sh main
# 更新增量索引
sh sphinx_index.sh delta
# 合并增量和主索引
sh sphinx_index.sh merge

备注

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

时间: 2024-12-15 00:15:51

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

sphinx,coreseek安装

sphinx是国外的一款搜索软件. coreseek是在sphinx的基础上,增加了中文分词功能,换句话说,就是支持了中文. Coreseek发布了3.2.14版本和4.1版本,其中的3.2.14版本是2010年发布的,它是基于Sphinx0.9.9搜索引擎的.而4.1版本是2011年发布的,它是基于Sphinx2.0.2的.Sphinx从0.9.9到2.0.2还是有改变了很多的,有很多功能,比如sql_attr_string等是在0.9.9上面不能使用的. 可以同时安装sphinx,cores

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.libtool-2.2.6,coreseek安装搭好安装环境. 1 m4-1.4.13下载地址: 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 $ .

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

http://blog.csdn.net/e421083458/article/details/21529969 常用的命令 ps -ef|grep searchd 如果你开了search服务后,你命令比如 indexer search 后面都需要带上 --rotate ./indexer --all ./searchd 至于其它什么命令 看手册 collect2: ld returned 1 exit status make[2]: *** [indexer] Error 1 make[2]:

coreseek(sphinx+mmseg3),php下sphinx扩展安装和php示例

搭建coreseek(sphinx+mmseg3)安装 [第一步] 先安装mmseg3 1 cd /root/install 2 wget http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz 3 tar zxvf coreseek-4.1-beta.tar.gz 4 5 cd coreseek-4.1-beta 6 cd mmseg-3.2.14 7 ./bootstrap 8 ./configure --prefix

Sphinx学习之sphinx的安装篇

一.  Sphinx简介 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能.Sphinx可以非常容易的与SQL数据库和脚本语言集成.当前系统内置MySQL和PostgreSQL 数据库数据源的支持,也支持从标准输入读取特定格式 的XML数据. Sphinx的特性如下: a)  高速的建立索引(在当代CPU上,峰值性能可达到10 MB/秒); b)  高性能的搜索(在2 – 4GB 的文本数据上,平均每

Sphinx + Coreseek 实现中文分词搜索

Sphinx + Coreseek 实现中文分词搜索 Sphinx Coreseek 实现中文分词搜索 全文检索 1 全文检索 vs 数据库 2 中文检索 vs 汉化检索 3 自建全文搜索与使用Google等第三方站点提供的站内全文搜索的差别 Sphinx Coreseek介绍 Coreseek安装使用 1. 全文检索 1.1 全文检索 vs. 数据库 全文检索是数据库的有力补充,全文检索并不能替代数据库在应用系统中的作用.当应用系统的数据以大量的文本信息为主时,採用全文检索技术能够极大的提升应

coreseek安装过程

一.sphinx 全文检索 通过sphinx检索到id,然后到mysql里面拿到记录 什么是劝我呢检索?结构化数据: 具有固定格式或者长度的数据非结构化数据: 标题 内容 等不定长的数据非机构化数据还叫做"全文数据" 检索分为两个过程:索引创建 和 搜索索引 检索结构php -> sphinx -> mysql非结构化数据又叫全文数据,非固定长度字段例如文章标题搜索这类适用sphinx 全文数据搜索:顺序扫描 : 如like查找索引扫描 : 把非结构化数据中的内容提取出来一

Coreseek安装小记

coreseek安装: http://219.232.239.243/uploads/csft/4.0/coreseek-4.1-beta.tar.gz cd mmseg-3.2.14 ./bootstrap #输出的warning信息可以忽略,如果出现error则需要解决 ./configure --prefix=/opt/app/mmseg3 make && make install cd csft-4.1 sh buildconf.sh #输出的warning信息可以忽略,如果出现e

coreseek安装使用

本文引自:http://www.phperz.com/article/14/0615/95.html sphinx的安装使用,其实都是大同小异,以下以 coreseek安装为例Coreseek 是一款中文全文检索/搜索软件,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,因为 sphinx不支持分词,所以用 coreseek特别适合,现在用的是 Coreseek 3.2.14 稳定版,目前暂时没有新的稳定版本1.安装 coreseek本文是以centos+mysql做为数据源支持为基