热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

分词搜索sphinx3.1.1+php7+mysql

下载sphinx3.1.1wgethttp:sphinxsearch.comfilessphinx-3.1.1-612d99f-linux-amd64.tar.gz解压 tarzx

  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文件夹,并赋777权限

    • cd /usr/local/sphinx

    • mkdir data

    • chmod -r 777 data

    • mkdir log

    • chmod -r 777 log



  5. 在/usr/local/sphinx/etc 编写 sphinx.conf 配置文件


    • cd /usr/local/sphinx/etc

    • vim 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 = 3306 # optional, default is 3306
      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
      min_word_len = 1
      ngram_len = 1
      ngram_chars = u+3000..u+2fa1f
      }
      indexer
      {
      mem_limit = 128m
      }
      searchd
      {
      listen = 9312
      listen = 9306:mysql41
      log = /usr/local/sphinx/log/searchd.log
      query_log = /usr/local/sphinx/log/query.log
      read_timeout = 5
      max_children = 30
      pid_file = /usr/local/sphinx/log/searchd.pid
      seamless_rotate = 1
      preopen_indexes = 1
      unlink_old = 1
      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




  8. 运行sphinx

    • /usr/local/sphinx/bin/searchd -c  /usr/local/sphinx/etc/sphinx.conf




  9. php操作sphinx

    • 下载sphinxapi.php 自带的类文件缺少function



https://files.cnblogs.com/files/wxzxc/sphinxclient.zip





    • $sphinx = new sphinxclient();
      $q = $_get['key'] ?? 'test'; //搜索关键字
      $sql = "";
      $host = "127.0.0.1";
      $port = 9312;
      $index = "*";
      $sphinx->setserver($host, $port);
      $sphinx->setconnecttimeout(10);
      $sphinx->setarrayresult(true);
      $sphinx->setmatchmode(sph_match_all);
      $res = $sphinx->query($q, $index);
      print_r($res);

       运行结果如下:










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

 



推荐阅读
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • PHP7留言板开发之列表搜索的实现方法
    小编给大家分享一下PHP7留言板开发之列表搜索的实现方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!1.当数据量上来的时候, ... [详细]
  • ubuntu如何安装lamp环境php7
    这篇文章主要介绍ubuntu如何安装lamp环境php7,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ubuntu安装lampphp7的方法 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • mysqli扩展无法在PHP7下升级怎么办
    这篇文章将为大家详细讲解有关mysqli扩展无法在PHP7下升级怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有 ... [详细]
  • 一、安装前的准备1、卸掉之前的本地环境(php、Apache、mysql),如果本地默认开启了IIS服务,需将IIS服务关闭(端口占用),虽然可以改Apache服务端口,但是访问时 ... [详细]
  • php7安装指南(windows)之apache的安装方法
    这篇文章给大家分享的是有关php7安装指南(windows)之apache的安装方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看 ... [详细]
author-avatar
jAne
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有