1.下载sphinx

没想到sphinx3解压后即可;

wget http://sphinxsearch.com/files/sphinx-3.0.2-2592786-linux-amd64.tar.gz
grep -v "^#" sphinx.conf.dist | grep -v "^\s#" | grep -v "^$" >sphinx.conf
安装依赖包:yum -y install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel
不安装有可能报错误呢?
sql_query_pre = SET SESSION query_cache_type = OFF # 还特定于MySQL源代码,在预查询中禁用查询缓存(仅用于索引器连接)非常有用,因为索引查询不会经常重新运行,而且缓存结果也没有意义。这可以通过以下方式实现:

sql_ranged_throttle

远程查询限制期,以毫秒为单位。可选,默认值为0(不节流)。适用于SQL数据源(mysqlpgsqlmssql)只。

索引器在数据库服务器上施加太多负载时,节流可能很有用。它会使索引器在每个范围查询步骤中以指定的毫秒数休眠一次。这种睡眠是无条件的,并且在提取查询之前执行。

在每个查询步骤之前,sql_ranged_throttle = 1000#睡眠1秒

 
    ## N-Gram索引的分词技术
## N-Gram是指不按照词典,而是按照字长来分词,这个主要是针对非英文体系的一些语言来做的(中文、韩文、日文)
## 对coreseek来说,这两个配置项可以忽略。
# ngram_len =
# ngram_chars = U+..U+2FA1F
source documents
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass =
sql_db = test
sql_port = # optional, default is
sql_query = \
SELECT id, group_id, title, content \
FROM documents sql_query_pre = SET NAMES utf8
sql_query_pre = SET SESSION query_cache_type=OFF
sql_query_pre = REPLACE INTO sph_counter SELECT ,MAX(id) FROM documents
sql_ranged_throttle =
}
source src1throttled : documents
{
sql_ranged_throttle =
}
index documents
{
source = documents
path = /var/data/documents
docinfo = extern
dict = keywords
mlock =
morphology = none
min_word_len = ngram_len =
ngram_chars = U+..U+2FA1F
html_strip =
}
indexer
{
mem_limit = 128M
}
searchd
{
listen =
listen = :mysql41
log = /var/log/searchd.log
query_log = /var/log/query.log
read_timeout =
client_timeout =
max_children =
persistent_connections_limit =
pid_file = /var/log/searchd.pid
seamless_rotate =
preopen_indexes =
unlink_old =
mva_updates_pool = 1M
max_packet_size = 8M
max_filters =
max_filter_values =
max_batch_queries =
workers = threads # for RT to work
binlog_path = /var/data
}

2.报错信息

执行:./searchd -c /usr/local/sphinx/etc/sphinx.conf

FATAL: failed to open '/usr/local/var/data/binlog.lock': 2 'No such file or directory

解决:配置 即可:找的位置不对: binlog_path             = /var/data

2.2

执行:./indexer -c /usr/local/sphinx/etc/sphinx.conf --all

ERROR: index 'documents': sql_query_pre[1]: Query cache is disabled; restart the server with query_cache_type=1 to enable it (DSN=mysql://root:***@localhost:3306/test)

解决:mysql没有开启缓存

如果何配置查询缓存:

  query_cache_type 这个系统变量控制着查询缓存工能的开启的关闭。

  query_cache_type=0时表示关闭,1时表示打开,2表示只要select 中明确指定SQL_CACHE才缓存。

  这个参数的设置有点奇怪,、如果事先查询缓存是关闭的然而用 set @@global.query_cache_type=; 会报错

  ERROR  (HY000): Query cache is disabled; restart the server with query_cache_type= to enable it

  、如果事先是打开着的尝试去闭关它,那么这个关闭也是不完全的,这种情况下查询还是会去尝试查找缓存。

  最好的关闭查询缓存的办法就是把my.cnf 中的query_cache_type=0然后再重启mysql。

二.安装php扩展 --sphinx

我的环境是php7.官网上没有,但是在[ Browse Source ] 找到了

wget http://git.php.net/?p=pecl/search_engine/sphinx.git;a=snapshot;h=339e123acb0ce7beb2d9d4f9094d6f8bcf15fb54;sf=tgz

  tar -xzf sphinx-339e123.tar.gz -C ./php-sphinx --strip-components 1   #解压后重新命名

 
#竟然还下不来,只能ftp上传了
解压:
tar zxf sphinx-339e123.tar.gz 编译: ./configure --with-php-config=/usr/bin/php-config --with-sphinx=/usr/local/sphinx/libsphinxclient
# 这个地方好大的坑,一直提示:Cannot find libsphinxclient headers
make && make install

PHP         : /usr/bin/php
PHP_SAPI : cli
PHP_VERSION : 7.0.
ZEND_VERSION: 3.0.
PHP_OS : Linux - Linux vic 2.6.-642.13..el6.x86_64 # SMP Wed Jan :: UTC x86_64
INI actual : /usr/local/src/sphinx-339e123/tmp-php.ini
More .INIs :
CWD : /usr/local/src/sphinx-339e123
Extra dirs :
VALGRIND : Not used
=====================================================================
TIME START -- ::
=====================================================================
No tests were run.

搞了很久终于可以了;

最后一步:修改php.ini

extension = sphinx.so

然后重启php-fpm即可,执行php -m,看到有sphinx扩展说明安装成功
php -m 终于安装成功了;

 2.sphinx 用php的使用

$sphinx = new SphinxClient;
$sphinx->setServer("localhost", 9312);
$sphinx->setMatchMode(SPH_MATCH_ANY); //匹配模式 ANY为关键词自动拆词,ALL为不拆词匹配(完全匹配)
$sphinx->SetArrayResult ( true ); //返回的结果集为数组
$result = $sphinx->query("test","*"); //星号为所有索引源
$count=$result['total']; //查到的结果条数
$time=$result['time']; //耗时
$arr=$result['matches']; //结果集
$id='';
for($i=0;$i<$count;$i++){
$id.=$arr[$i]['id'].',';
}
$id=substr($id,0,-1); //结果集的id字符串

三、中文分词

1.安装scws

  下载:wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2

./configure --prefix=/usr/local/scws
make
make install

2.下载词库

  进入:cd /usr/local/scws/etc下,

  wget http://www.xunsearch.com/scws/down/scws-dict-chs-gbk.tar.bz2 #gbk

  wget http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2 #utf8

  wget  http://www.xunsearch.com/scws/down/scws-dict-cht-utf8.tar.bz2 #繁体中文

[root@iZije4ffdt70xyZ etc]# ll
total
-rw-r--r-- root root Jun : rules_cht.utf8.ini
-rw-r--r-- root root Jun : rules.ini
-rw-r--r-- root root Jun : rules.utf8.ini
-rw-r--r-- root root Feb scws-dict-chs-gbk.tar.bz2
-rw-r--r-- root root Feb scws-dict-chs-utf8.tar.bz2
-rw-r--r-- root root Feb scws-dict-cht-utf8.tar.bz2
[root@iZije4ffdt70xyZ etc]# tar -jxvf scws-dict-chs-gbk.tar.bz2
dict.xdb
[root@iZije4ffdt70xyZ etc]# tar -jxvf scws-dict-chs-utf8.tar.bz2
dict.utf8.xdb
[root@iZije4ffdt70xyZ etc]# tar -jxvf scws-dict-cht-utf8.tar.bz2
dict_cht.utf8.xdb
[root@iZije4ffdt70xyZ etc]#

3.安装php扩展

cd SCWS_1.x.x/phpext
phpize
./configure --with-php-config=PHP_HOME/bin/php-config
make
make install

  

4.cd SCWS_1.x.x/phpext 
php scws_test.php

检测结果是否正确

sphinx的安装的更多相关文章

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

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

  2. Sphinx学习之sphinx的安装篇

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

  3. sphinx编译安装

    install sphinx wget http://sphinxsearch.com/files/sphinx-2.0.8-release.tar.gz tar zxvf sphinx--relea ...

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

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

  5. sphinx全文检索 安装配置和使用

    公司项目刚刚导入大量产品数据,然后发现网站的产品搜索很卡,原本是原生sql的like来做模糊搜索,数据量20W的时候还可以接受,但是上百万就很卡了,所以需要做优化. 经过考虑,打算采用全文检索 sph ...

  6. sphinx,coreseek安装

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

  7. Sphinx扩展安装安装

    Coreseek官方教程中建议php使用直接include一个php文件进行操作,事实上php有独立的sphinx模块可以直接操作coreseek(coreseek就是sphinx!)已经进入了php ...

  8. 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 ...

  9. Sphinx(Coreseek)安装和使用指南

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

随机推荐

  1. 双硬盘RAID 0全攻略

    . RAID53 RAID7即高效数据传送磁盘结构,是RAID3和带区结构的统一,因此它速度比较快,也有容错功能.但价格十分高,不易于实现. 为什么需要磁盘阵列        如何增加磁盘的存取(ac ...

  2. ORA-00936: missing expression

    1.错误描述 Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 Connected as scott@ORC ...

  3. 21个DOS常用命令

    DOS,可别不知道DOS在哪里运行,有好几种方法1.开始菜单---程序---附件---命令提示符2.开始菜单---运行---打命令CMD 一.常用DOS命令(1)cd..                ...

  4. Halcon异常(C++)不起作用

    现象 Halcon导出的C++程序,try catch不到异常.在Halcon下可以正常Catch到异常.  C++代码:try{   tuple_max(hv_Length, &hv_Max ...

  5. STM32F4使用FPU+DSP库进行FFT运算的测试过程一

    测试环境:单片机:STM32F407ZGT6   IDE:Keil5.20.0.0  固件库版本:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0 第一部分:使用源码文件的方式,使 ...

  6. 论文笔记(7):Constrained Convolutional Neural Networks for Weakly Supervised Segmentation

    UC Berkeley的Deepak Pathak 使用了一个具有图像级别标记的训练数据来做弱监督学习.训练数据中只给出图像中包含某种物体,但是没有其位置信息和所包含的像素信息.该文章的方法将imag ...

  7. Xampp相关命令

    http://www.upwqy.com/details/5.html 1 启动关闭 需要切换目录: # cd /opt/lampp/ 启动 XAMPP # ./lampp start 停止 XAMP ...

  8. checkBox半选中状态

    checkbox 可以半选中,这个特性,很多浏览器都支持 // 用 input.indeterminate 这个属性来获取或者设置半选中状态,必须要用 js 添加属性,才有效果. input.inde ...

  9. Xamarin改变移动开发的五个理由

    企业开发者不能简单的抛弃现有的桌面和Web应用,然而又不得不忙着创建各种各样的应用,没有太多的预算来开发移动版本,尤其是原生版本. 采用Xamarin,C#开发人员可以使用一份基础代码创建桌面版和移动 ...

  10. react-native简单demo:实现加载豆瓣电影列表

    https://github.com/axel10/react-native-douban' 相关随笔: react-native 开发环境搭建 http://www.cnblogs.com/axel ...