centos6操作系统

Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景,用户可以免费下载使用。

coreseek安装需要预装的软件:

yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel

cd /usr/local/src
wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
tar -xzvf coreseek-3.2.14.tar.gz
cd coreseek-3.2.14##安装mmseg
cd mmseg-3.2.14
./bootstrap #输出的warning信息可以忽略,如果出现error则需要解决
./configure --prefix=/usr/local/mmseg3
make && make install
cd ..
## 安装完成后,mmseg使用的词典和配置文件将自动安装到/usr/local/mmseg3/etc中##安装coreseek
cd csft-3.2.14
sh buildconf.sh #输出的warning信息可以忽略,如果出现error则需要解决
./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql ##如果提示mysql问题,可以查看MySQL数据源安装说明
make && make install
cd ..cd /usr/local/coreseek/etc
cp sphinx-min.conf.dist sphinx.conf
vi sphinx.conf
内容示例如下(localhost,DB_USER,DB_PASSWORD,DB_NAME自行修改)
#
# Minimal Sphinx configuration sample (clean, simple, functional)
#source content
{type                                    = mysqlsql_host                                = localhostsql_user                                = DB_USERsql_pass                                = DB_PASSWORDsql_db                                  = DB_NAMEsql_port                                = 3306  # optional, default is 3306sql_query_pre                           = SET NAMES utf8sql_query                               = \SELECT id, title, pub_time, group_id, content FROM contents where status = '1'sql_attr_uint                   = group_idsql_attr_timestamp              = pub_timesql_query_info                  = SELECT * FROM contents WHERE id=$id
}
index content
{source                                  = contentpath                                    = /usr/local/coreseek/var/data/contentdocinfo                                 = externcharset_dictpath                        = /usr/local/mmseg3/etc/charset_type                            = zh_cn.utf-8ngram_len                               = 0
}
indexer
{mem_limit                               = 32M
}searchd
{port                                    = 9312log                                     = /usr/local/coreseek/var/log/searchd.logquery_log                               = /usr/local/coreseek/var/log/query.logread_timeout                            = 5max_children                            = 30pid_file                                = /usr/local/coreseek/var/log/searchd.pidmax_matches                             = 1000seamless_rotate                         = 1preopen_indexes                         = 1unlink_old                              = 1
}

然后根据以上配置建立索引文件

/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all --rotate

启动命令
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf

然后在coreseek目录下,新建3个sh脚本,以便操作
停止服务stop.sh

#!/bin/bash
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf --stop

建立索引build.sh

#!/bin/bash
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all --rotate

启动服务start.sh

#!/bin/bash
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf

添加可执行权限

chmod +x start.sh
chmod +x stop.sh
chmod +x build.sh

运行start.sh后,使用crontab定时执行build.sh,就可更新索引。(注:因为数据量小且更新不算很频繁,未使用增量索引,只是定时重建主索引,新版本CoreSeek全文搜索 4.1 支持实时索引)

crontab -e
0 2 * * * sh /usr/local/coreseek/build.sh >/dev/null 2>&1

每天凌晨2点重建一次索引,忽略日志输出。

在/usr/local/src/coreseek.3.2.14/csft-3.2.14/api目录下提供了PHP的接口文件 sphinxapi.php,这个文件包含一个SphinxClient的类,copy到自己的web目录下
通过如下方式进行搜索

$s_key = trim($s_key);
if(strpos($s_key,'\'') || strpos($s_key,'\"') || strpos($s_key,'\;')) {exit('非法字符');
}
require("sphinxapi.php");$page_nums = 20;
$offset_start = ($page_index-1)*$page_nums;
$offset_end = $offset_start + $page_nums;
$cl = new SphinxClient();
$cl->SetServer('localhost', 9312);
$cl->SetArrayResult(true);
$cl->SetMatchMode(SPH_MATCH_ALL);
$cl->SetLimits($offset_start,$offset_end);
$cl->SetSortMode(SPH_SORT_RELEVANCE);
$res = $cl->Query($s_key,"content");

安装包括两个部分,mmseg和csft

安装成功会在/usr/local文件夹下面出现coreseek文件夹

source bt
{
 sql_pass                = ****  #如果密码里面有#号需要使用转意字符,否则连接不了数据库  
 sql_query_pre  = SET NAMES utf8 #要根据你自己数据库的编码改变,比如如果编码是utf8mb4而编码写的是utf8 会出现没有搜索结果的问题
 
}
 
index bt
{
    source                    = bt  #这个地方的值要和前面配置的source名对应
}

/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf --stop  停止服务
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all --rotate  建立索引

/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf   开启服务

默认配置文件是csft.conf 如果配置文件是其他名字的话,需要-c 来制定配置文件路径
---------------

配置文件中

sql_query                =   xxxx

xxxx代表一个sql语句,sql语句select的第一个字段将被sphinx认作表的主键来进行索引,所以数据表的主键字段不是int类型也没有关系,选一个是int类型的字段排在select语句的第一个就行了,但是这个字段要保证唯一性,否则会导致搜索结果不完整,计算出来的值也可以被当做主键来进行索引 比如SELECT unix_timestamp(time),name, age .......unix_timestamp(time)是计算出来的,它排在第一个的时候,就会被sphinx当做表的主键来进行索引。
---------------------

CoreSeek详细入门教程相关推荐

  1. TypeScript超详细入门教程(上)

    TypeScript超详细入门教程(上) 01 开篇词:Hello~TypeScript 01 开篇词:Hello~TypeScript 更新时间:2019-10-30 13:49:46 既然我已经踏 ...

  2. 543、RabbitMQ详细入门教程系列 -【Confirm与Mandatory】 2022.09.05

    目录 一.前言概述 二.SpringAMQP配置Confirm 2.1 Connection设置 2.2 template设置 2.3 Confirm实现 三.SpringAMQP配置ManDator ...

  3. 544、RabbitMQ详细入门教程系列 -【手动消费确认】 2022.09.05

    目录 一.前言概述 二.配置实现 2.1 XML配置 2.2 MessageListener实现 三.消息预取 四.并发消费 五.参考链接 一.前言概述 RabbitMQ(四) --消费者Consum ...

  4. 【endnote详细入门教程】

    Endnote详细入门教程 一.下载引用,导入文献 二.在word中插入引用 三.文献分类.注释 四.预览.引用格式 一.下载引用,导入文献 1.可以从不同的文献下载网站进行导入: (1)web of ...

  5. Swig超详细入门教程(Java调用C/C++, CMake)——更新于2021.12

    目录 相关教程 环境配置 0基础上手例子(C/C++) 使用CMake的例子(C语言) 使用CMake的例子(C++) 本文主要是手把手教萌新们如何用官方用例构建(有许多本人亲身踩坑血泪史) 相关教程 ...

  6. Apollo Control——超详细入门教程(二):连续状态空间方程离散化与离散LQR公式推导

    专栏文章列表 Apollo Control--超详细入门教程(一):基于道路误差的车辆动力学模型 Apollo Control--超详细入门教程(二):连续状态空间方程离散化与离散LQR公式推导 Ap ...

  7. python画图颜色表示大小变化_python画图(线条颜色、大小、类型:点、虚线等)(图文详细入门教程四)...

    初衷 本人由于平常写论文需要输出一些结果图,但是苦于在网上搜python画图时,详细的教程非常多,但是就是找不到能马上解决自己问题那一行代码,所以打算写一些适合需求简单的朋友应急用的教程,应急就必须方 ...

  8. MFC 最详细入门教程

    From:https://blog.csdn.net/wang18323834864/article/details/78621633/ Visual Studio 2019:https://visu ...

  9. python画图marker显示_python画图(标记、marker、设置标记大小、marker符号大全)(图文详细入门教程五)...

    初衷 本人由于平常写论文需要输出一些结果图,但是苦于在网上搜python画图时,详细的教程非常多,但是就是找不到能马上解决自己问题那一行代码,所以打算写一些适合需求简单的朋友应急用的教程,应急就必须方 ...

  10. canvas详细入门教程(1W字 吐血分享)

    大家好,我是潘潘 今天为大家带来的是我已经写了很久了的canvas详细教程,对入门canvas很有帮助. 点击跳转原文: canvas详细教程原文 canvas是什么? 简单来说,<canvas ...

最新文章

  1. 别只顾着写代码,学会这 25 条比涨工资都重要,你信不?
  2. java 1.8 tar.gz_linux安装java1.8
  3. 使用eclipse编写JAVA程序
  4. Web-Lesson07-JS的函数及作用域
  5. Apache下如何禁止指定目录运行PHP脚本
  6. python lock_python lock一步步教你理解Python装饰器
  7. CF1338D:Nested Rubber Bands(树形dp)
  8. linux下amd超频工具,AMD锐龙自动超频工具ClockTuner for Ryzen
  9. 我想问一下男生,一个女生那么真诚热情又卑微的喜欢你,你们是怎么做到视而不见的呢?
  10. java http 面试题_Java面试高级篇—说说TCP,UDP和socket,Http之间联系和区别面试题12期...
  11. 寻找最佳特征维度_寻找5种最佳设计模式书
  12. 商务高端、CPU要求高-笔记本选型
  13. Requirements Analysis with 'pseud-Formal' Method
  14. SENT (Single Edge Nibble Transmission) 协议 接口
  15. docker部署mysql出错:mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 13 - Permission denied)
  16. 从源码层面理解 Either、Option 和 Try
  17. 腾讯音乐2020年报:懒人听书收购完成,谢振宇、太盟投资减持
  18. /proc/self/目录的意义
  19. 整理总结:零基础英语语法
  20. 如何使用poi解析word生成html目录结构

热门文章

  1. 利用C#编写一个附和闭合导线平差程序
  2. 地籍数据属性质检功能设计与实现
  3. 城市数字孪生解决方案
  4. Spark-SQL常用内置日期时间函数
  5. grid autosport额外内容下载慢_世界土壤数据库(HWSD)全球土壤数据下载处理
  6. Visual C++ 微软常用运行库合集
  7. 基于SSM框架开发的社区疫情管理系统 附带详细运行指导视频
  8. 【原创】VBA学习笔记(4)VBA函数 和 worksheetfunction工作表函数
  9. 三方演化博弈复制动态方程matlab仿真(输入参数较多时)——matlab2016a版本
  10. IAR报错:新手刚使用K60(非UD)时容易碰到的问题:芯片被锁,missing FlashK60XX.board