1.下载sphinx

没想到sphinx3解压后即可;

  1. 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
    不安装有可能报错误呢?
  1. sql_query_pre = SET SESSION query_cache_type = OFF # 还特定于MySQL源代码,在预查询中禁用查询缓存(仅用于索引器连接)非常有用,因为索引查询不会经常重新运行,而且缓存结果也没有意义。这可以通过以下方式实现:

sql_ranged_throttle

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

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

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

  1.  
  1. ## N-Gram索引的分词技术
  2. ## N-Gram是指不按照词典,而是按照字长来分词,这个主要是针对非英文体系的一些语言来做的(中文、韩文、日文)
  3. ## 对coreseek来说,这两个配置项可以忽略。
  4. # ngram_len =
  5. # ngram_chars = U+..U+2FA1F
  1. source documents
  2. {
  3. type = mysql
  4. sql_host = localhost
  5. sql_user = root
  6. sql_pass =
  7. sql_db = test
  8. sql_port = # optional, default is
  9. sql_query = \
  10. SELECT id, group_id, title, content \
  11. FROM documents
  12.  
  13. sql_query_pre = SET NAMES utf8
  14. sql_query_pre = SET SESSION query_cache_type=OFF
  15. sql_query_pre = REPLACE INTO sph_counter SELECT ,MAX(id) FROM documents
  16. sql_ranged_throttle =
  17. }
  18. source src1throttled : documents
  19. {
  20. sql_ranged_throttle =
  21. }
  22. index documents
  23. {
  24. source = documents
  25. path = /var/data/documents
  26. docinfo = extern
  27. dict = keywords
  28. mlock =
  29. morphology = none
  30. min_word_len =
  31.  
  32. ngram_len =
  33. ngram_chars = U+..U+2FA1F
  34. html_strip =
  35. }
  36. indexer
  37. {
  38. mem_limit = 128M
  39. }
  40. searchd
  41. {
  42. listen =
  43. listen = :mysql41
  44. log = /var/log/searchd.log
  45. query_log = /var/log/query.log
  46. read_timeout =
  47. client_timeout =
  48. max_children =
  49. persistent_connections_limit =
  50. pid_file = /var/log/searchd.pid
  51. seamless_rotate =
  52. preopen_indexes =
  53. unlink_old =
  54. mva_updates_pool = 1M
  55. max_packet_size = 8M
  56. max_filters =
  57. max_filter_values =
  58. max_batch_queries =
  59. workers = threads # for RT to work
  60. binlog_path = /var/data
  61. }

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没有开启缓存

  1. 如果何配置查询缓存:
  2.  
  3.   query_cache_type 这个系统变量控制着查询缓存工能的开启的关闭。
  4.  
  5.   query_cache_type=0时表示关闭,1时表示打开,2表示只要select 中明确指定SQL_CACHE才缓存。
  6.  
  7.   这个参数的设置有点奇怪,、如果事先查询缓存是关闭的然而用 set @@global.query_cache_type=; 会报错
  8.  
  9.   ERROR (HY000): Query cache is disabled; restart the server with query_cache_type= to enable it
  10.  
  11.   、如果事先是打开着的尝试去闭关它,那么这个关闭也是不完全的,这种情况下查询还是会去尝试查找缓存。
  12.  
  13.   最好的关闭查询缓存的办法就是把my.cnf 中的query_cache_type=0然后再重启mysql

二.安装php扩展 --sphinx

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

  1. 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   #解压后重新命名

  1.  
  1. #竟然还下不来,只能ftp上传了
  2. 解压:
  3. tar zxf sphinx-339e123.tar.gz
  4.  
  5. 编译:
  6.  
  7. ./configure --with-php-config=/usr/bin/php-config --with-sphinx=/usr/local/sphinx/libsphinxclient
  8. # 这个地方好大的坑,一直提示:Cannot find libsphinxclient headers
  9. make && make install
  1.  
  1. PHP : /usr/bin/php
  2. PHP_SAPI : cli
  3. PHP_VERSION : 7.0.
  4. ZEND_VERSION: 3.0.
  5. PHP_OS : Linux - Linux vic 2.6.-642.13..el6.x86_64 # SMP Wed Jan :: UTC x86_64
  6. INI actual : /usr/local/src/sphinx-339e123/tmp-php.ini
  7. More .INIs :
  8. CWD : /usr/local/src/sphinx-339e123
  9. Extra dirs :
  10. VALGRIND : Not used
  11. =====================================================================
  12. TIME START -- ::
  13. =====================================================================
  14. No tests were run.

搞了很久终于可以了;

最后一步:修改php.ini

  1. extension = sphinx.so
  2.  
  3. 然后重启php-fpm即可,执行php -m,看到有sphinx扩展说明安装成功
    php -m
  4.  
  5. 终于安装成功了;

 2.sphinx 用php的使用

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

三、中文分词

1.安装scws

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

  1. ./configure --prefix=/usr/local/scws
  2. make
  3. 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 #繁体中文

  1. [root@iZije4ffdt70xyZ etc]# ll
  2. total
  3. -rw-r--r-- root root Jun : rules_cht.utf8.ini
  4. -rw-r--r-- root root Jun : rules.ini
  5. -rw-r--r-- root root Jun : rules.utf8.ini
  6. -rw-r--r-- root root Feb scws-dict-chs-gbk.tar.bz2
  7. -rw-r--r-- root root Feb scws-dict-chs-utf8.tar.bz2
  8. -rw-r--r-- root root Feb scws-dict-cht-utf8.tar.bz2
  9. [root@iZije4ffdt70xyZ etc]# tar -jxvf scws-dict-chs-gbk.tar.bz2
  10. dict.xdb
  11. [root@iZije4ffdt70xyZ etc]# tar -jxvf scws-dict-chs-utf8.tar.bz2
  12. dict.utf8.xdb
  13. [root@iZije4ffdt70xyZ etc]# tar -jxvf scws-dict-cht-utf8.tar.bz2
  14. dict_cht.utf8.xdb
  15. [root@iZije4ffdt70xyZ etc]#

3.安装php扩展

  1. cd SCWS_1.x.x/phpext
  2. phpize
  3. ./configure --with-php-config=PHP_HOME/bin/php-config
  4. make
  5. 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. java实现多线程三种方法

    1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法 3.实现callable接口,重写call方法

  2. Shell 的特殊变量

    2017-08-02 1.$0 获取当前脚本的名称或全路径 cat name.sh Linux shell sh name.sh echo $0 name.sh 2.$n(n >=1) 获取脚本 ...

  3. RobotFramework下的http接口自动化Follow Response关键字的使用

    Follow Response 关键字用于处理http中的重定向请求,常见的http 重定向请求包含http code为301和302 两种重定向请求,代表着某个URL地址发生了转移. http co ...

  4. rabbitmq简单收发服务搭建

    消息发送.接收简单代码示例 mq.xml //rabbitmq config spring.rabbitmq.host=ip:host spring.rabbitmq.username= spring ...

  5. NOIWC2018滚粗记

    Day0 \(THUWC\)刚刚结束..顺利的滚粗了 Day1 整理一下自己咸鱼的心 下午到学校坐车出发 这次队伍浩大THUWC只有4个 又到了雅礼洋湖这个地方 路上突然多了许多有关\(NOI\)的标 ...

  6. awk多分隔符功能及wc命令案列及企业级应用

    打印最后一行行号: cat -n /etc/services|tail -1 awk '{print NR $0}' oldboy.txt|tail -1 awk '{print NR $0}' /e ...

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

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

  8. FCN小小实战

    先说一下前期准备工作:自己的运行环境是Ubuntu16.04+caffe+CPU(这台电脑没有GPU)+python 关于python的搭建就不说了,网上随便一搜,很多参考资源.说一下我配置好caff ...

  9. ajax 状态码

    状态码定义 ... 10 信息1xx ... 10.1 100继续 ... 10.1.1 101交换协议 ... 10.1.2 成功的2xx ... 10.2 200 OK ... 10.2.1 20 ...

  10. 空间金字塔池化(Spatial Pyramid Pooling, SPP)原理和代码实现(Pytorch)

    想直接看公式的可跳至第三节 3.公式修正 一.为什么需要SPP 首先需要知道为什么会需要SPP. 我们都知道卷积神经网络(CNN)由卷积层和全连接层组成,其中卷积层对于输入数据的大小并没有要求,唯一对 ...