sphinx3.1.1的安装与使用

  1. 下载sphinx3.1.1

    • wget http://sphinxsearch.com/files/sphinx-3.1.1-612d99f-linux-amd64.tar.gz
  2. 解压 
    • tar zxf sphinx-3.1.1-612d99f-linux-amd64.tar.gz
  3. 改名 sphinx 并移动到 /usr/local/
    • mv sphinx-3.1.1 sphinx
    • mv sphinx /usr/local/
  4. 到sphinx目录下创建 data,log文件夹
    • cd /usr/local/sphinx
    • mkdir data && mkdir log
  5. 在/usr/local/sphinx/etc 编写 sphinx.conf 配置文件
    • vim /usr/local/sphinx/etc/sphinx.conf
    • #
      # Minimal Sphinx configuration sample (clean, simple, functional)
      # source src1
      {
      type = mysql
      sql_host = localhost
      sql_user = root
      sql_pass = root
      sql_db = test
      sql_port = # optional, default is
      sql_query_pre = SET NAMES utf8
      sql_query = \
      SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
      FROM documents sql_attr_uint = group_id
      sql_attr_timestamp = date_added
      } index test1
      {
      source = src1
      path = /usr/local/sphinx/data/test1
      min_word_len =
      ngram_len =
      ngram_chars = U+..U+2FA1F
      } indexer
      {
      mem_limit = 128M
      } searchd
      {
      listen =
      listen = :mysql41
      log = /usr/local/sphinx/log/searchd.log
      query_log = /usr/local/sphinx/log/query.log
      read_timeout =
      max_children =
      pid_file = /usr/local/sphinx/log/searchd.pid
      seamless_rotate =
      preopen_indexes =
      unlink_old =
      binlog_path = /usr/local/sphinx/data/
      }
  6. 在test数据库中 运行/usr/local/sphinx/etc目录下的example.sql文件
    • 进入mysql
    • use test;
    • source /usr/local/sphinx/etc/example.sql
  7. 添加索引
    • /usr/local/sphinx/bin/indexer -c  /usr/local/sphinx/etc/sphinx.conf test1
    • /usr/local/sphinx/bin/indexer -c /usr/local/sphinx/etc/sphinx.conf test1 --rotate  // 重新生成索引命令
  8. 运行sphinx
    • /usr/local/sphinx/bin/searchd -c  /usr/local/sphinx/etc/sphinx.conf
    • /usr/local/sphinx/bin/searchd -c /usr/local/sphinx/etc/sphinx.conf --stop  //停止sphinx命令

  9. php操作sphinx
    • 复制/usr/local/sphinx/api/ 目录下的 sphinxapi.php
    • $sphinx = new SphinxClient();
      $q = $_GET['key'] ?? 'test'; //搜索关键字
      // 3.1已经弃用了setMatchMode!直接写查询语法就可以
      // 如果要匹配字符串中任意一个词或字使用如下写法
      // '"string1" | "string2" | "string3"' // '@(title,content) string' @括号中的是要搜索的字段 可以写多个或单个 // '^$string$' 表示全部匹配 类似mysql中的 fieldName = 'string'
      // 更多用法可以参考正则表达式或者官方文档 // 中文分词扩展建议使用scws,官网安装和使用教程说明很详细,(不过sphinx自带的一元分词已经够用了,一般不需要scws
      //http://www.xunsearch.com/scws/
      $sql = "";
      $host = "127.0.0.1";
      $port = 9312;
      $index = "test1";
      $sphinx->SetServer($host, $port);
      $sphinx->SetConnectTimeout(10);
      $sphinx->SetArrayResult(true);
      $res = $sphinx->Query($q, $index);
      print_r($res);

      运行结果如下:

结束,记得数据库数据改变后需重新生成索引

分词搜索 sphinx+php+mysql的更多相关文章

  1. Sphinx + Coreseek 实现中文分词搜索

    Sphinx + Coreseek 实现中文分词搜索 Sphinx Coreseek 实现中文分词搜索 全文检索 1 全文检索 vs 数据库 2 中文检索 vs 汉化检索 3 自建全文搜索与使用Goo ...

  2. linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg)

     linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg) 2013-11-10 16:51:14 分类: 系统运维 为什么要写这篇文章? 答:通过常规的三大步(./confi ...

  3. 使用sphinx索引mysql数据

    数据库表如下 mysql> select * from tb_account; +----+-------+------+ | id | name | age | +----+-------+- ...

  4. ECSHOP模糊分词搜索和商品列表关键字飘红功能

    ECSHOP联想下拉框 1.修改page_header.lbi模版文件,将搜索文本框修改为: <input name="keywords" type="text&q ...

  5. 【netcore基础】.Net core通过 Lucene.Net 和 jieba.NET 处理分词搜索功能

    业务要求是对商品标题可以进行模糊搜索 例如用户输入了[我想查询下雅思托福考试],这里我们需要先将这句话分词成[查询][雅思][托福][考试],然后搜索包含相关词汇的商品. 思路如下 首先我们需要把数据 ...

  6. ElasticSearch 中文分词搜索环境搭建

    ElasticSearch 是强大的搜索工具,并且是ELK套件的重要组成部分 好记性不如乱笔头,这次是在windows环境下搭建es中文分词搜索测试环境,步骤如下 1.安装jdk1.8,配置好环境变量 ...

  7. php+中文分词scws+sphinx+mysql打造千万级数据全文搜索

    转载自:http://blog.csdn.net/nuli888/article/details/51892776 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图 ...

  8. 分词搜索 sphinx3.1.1+php+mysql

    sphinx3.1.1的安装与使用 下载sphinx3.1.1 wget http://sphinxsearch.com/files/sphinx-3.1.1-612d99f-linux-amd64. ...

  9. windows7使用Sphinx+PHP+MySQL详细介绍

    安装(Windows) 1.官方下载 Sphinx下载地址: 下载 2.解压并重命名 此处下载版本为3.0.3,将 sphinx 文件夹命名为sphinx 3.文件夹目录介绍 sphinx --api ...

随机推荐

  1. Rocket - util - IDPool

    https://mp.weixin.qq.com/s/Pe7FGKzfRufzzYDrl0fQ7g   介绍IDPool的实现.   ​​   1. 基本介绍   实现从ID池中分配和释放ID的功能. ...

  2. js匿名函数和date对象,math对象

    匿名函数: <script type="text/javascript"> function (参数列表){ 要执行的语句块; } </script> 对象 ...

  3. Java实现 蓝桥杯 算法训练 Balloons in a Box

    试题 算法训练 Balloons in a Box 问题描述 你要写一个程序,使得能够模拟在长方体的盒子里放置球形的气球. 接下来是模拟的方案.假设你已知一个长方体的盒子和一个点集.每一个点代表一个可 ...

  4. Java实现 LeetCode 399 除法求值

    399. 除法求值 给出方程式 A / B = k, 其中 A 和 B 均为代表字符串的变量, k 是一个浮点型数字.根据已知方程式求解问题,并返回计算结果.如果结果不存在,则返回 -1.0. 示例 ...

  5. Java实现 LeetCode 337 打家劫舍 III(三)

    337. 打家劫舍 III 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区.这个地区只有一个入口,我们称之为"根". 除了"根"之外,每 ...

  6. java实现拼出漂亮的表格

    /* * 在中文 Windows 环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来. 比如: ┌─┬─┐ │ │ │ ├─┼─┤ │ │ │ └─┴─┘ 其实,它是由如下的符号拼接的: 左上 = ...

  7. java实现人员排日程

    某保密单位机要人员 A,B,C,D,E 每周需要工作5天,休息2天. 上级要求每个人每周的工作日和休息日安排必须是固定的,不能在周间变更. 此外,由于工作需要,还有如下要求: 所有人的连续工作日不能多 ...

  8. docker-compose mysql和node连接认证mongo问题

    前言 最近,想部署一个自己的项目,鉴于自己的服务器是VPS(虚拟主机),配置也不够,就想到了用 docker 直接部署好了,这样既方便部署也方便不用的时候卸载或更新 然后本地搭建了环境,踩了一些坑,在 ...

  9. centos 7 源码安装openssh

    环境:centos 7.1.1503 最小化安装 依赖包下载:  yum -y install lrzsz zlib-devel perl gcc pam-devel 1.安装openssl ,选用最 ...

  10. python—模块与包

    模块: (一个.py文件就是一个模块module,模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能.) 模块分三种: 1.python标准库 2.第三方模块 3.应用程序自定义模块 ...