1. 原理:
    1. 使用sphinx 中的indexer 生成索引数据
    2. service/web 端 利用searched 调用索引数据
  2. 步骤:
    1. 下载 sphinx:
      1. 下载地址:http://sphinxsearch.com/downloads/release/  这个可以根据自己电脑的系统来下载相应的安装包。
      2. ps:我是mac,所以 我下载了mac安装包,按照文档上的安装 发现不行,后来 我下载了第一个 即 Source tarball (tar.gz), 才安装成功的。
    2. 安装sphinx
      1. 参考地址:http://sphinxsearch.com/docs/current.html#compiling-from-source  一步步来就可以了。主要是 configure的配置,其他都一样。我是xampp 所以写成 ./configure --prefix=/usr/local/sphinx --with-mysql=/Applications/XAMPP/xamppfiles。然并卵,./configure --prefix=/usr/local/sphinx 其实就可以了。
      2. cd /usr/local/sphinx/ 查看 这个目录下,有了bin,etc,var 三个文件夹,就是安转成功了。
    3. 使用sphinx 中的indexer工具 来 对数据表 建立索引数据
      1. indexer 的位置: /usr/local/sphinx/bin
      2. 方法:bin/indexer -c etc/sphinx.conf test1
      3. 问题1:sphinx.conf 是什么 。
        1. sphinx.conf 是 sphinx 的配置文件
        2. 位置 /usr/local/sphinx/etc,没有的话,自己新建一个或者复制一个
      4. 问题2:test1 是什么:需要建立索引文件的 索引名称,在配置文件中有些
      5. 所以需要先 配置好 sphinx.conf 文件,
        1. 参考地址:http://www.sphinxsearch.org/sphinx-tutorial
        2. 参考地址:http://www.apoyl.com/?p=290
        3. 各个配置项的说明,参考:http://sphinxsearch.com/docs/current.html#conf-reference
        4. 配置好各个参考。保存,执行3.1。居然报错,提示语:Library not loaded: libmysqlclient.18.dylib 网上 查了下,貌似是 文件不存在
        5. 参考地址:http://blog.sina.com.cn/s/blog_68f3bc280100supn.html
        6. 因为我用的是xampp,并不是原生态的mysql,所以文件不存在 也是合理的。
        7. 我去xampp中找到了 类似文件 /Applications/XAMPP/xamppfiles/lib/libmysqlclient.18.dylib。然后执行 sudo ln -s /Applications/XAMPP/xamppfiles/lib/libmysqlclient.18.dylib  /usr/lib/libmysqlclient.18.dylib
        8. 在 执行 3.1 的命令行。发现 ok了。
        9. 查看 cd /usr/local/sphinx/var/data/.(sphinx.conf文件里面有些索引的路径即 path) 发现 存在了 。
        10. 这些数据,既 针对test1的索引数据,生成成功了。
      6.   ps:--rotate参数可以在不停searchd的情况下索引,不然的话会有类似如下的提示:
          FATAL: failed to lock /usr/local/...... Resource temporarily unavailable, will not index. Try --rotate option.
          方法:bin/indexer -c etc/sphinx.conf test1 --rotate
    4. 测试索引是否可以使用
      1. /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf --status
    5. 查看sphinx 的数据
      1. mysql -h0 -P9306
      2. 使用mac 自带的终端 输入  mysql -h0 -P9306,怎么没起到作用,我去(command not found)。
      3. 原来当你输入命令时,系统会在/usr/bin这个位置里寻找你输入的命令,如果你没有把命令引入到这个位置,无论你直接cd到工具具体的位置调用,也是白费功夫的。只要把这个工具的绝对位置引入到/usr/bin,所有的问题就迎刃而解了,只要我们把这条命令执行

        sudo ln /Applications/XAMPP/xamppfiles/bin/mysql /usr/bin 
      4. 此时 我们再次输入 mysql -h0 -P9306,就可以进入sphinx的数据库了。
      5. 再附上 进入mysql数据库的命令行 :mysql -u root -p
    6. 我的配置:
      1. mac os x 10.10.5
      2. x86_64
      3. xampp

mac 下 sphinx + mysql + php 实现全文搜索(xampp)(1)的更多相关文章

  1. mac 下 sphinx + mysql + php 实现全文搜索(xampp)(3)sphinx 的配置项解析

    source:数据的来源,数据是从什么地方来的. index:索引,当有数据源之后,从数据源处构建索引.索引实际上就是相当于一个字典检索.有了整本字典内容以后,才会有字典检索. searchd:提供搜 ...

  2. mac 下 sphinx + mysql + php 实现全文搜索(xampp)(4)php api 解析

    1:function GetLastError()  // 假如报错的话,会输出报错信息 2:function GetLastWarning ()// 输出 警告信息 3:function SetSe ...

  3. 配置apache,及mac下安装mysql

    先打开apache,在浏览器上输入  localhost     回车后会如果屏幕上显示:It works! 如下图: 这说明你的apache已开启 在window下配置apache: 1.找到apa ...

  4. mac 初次配置apache,及mac下安装mysql

    先打开apache,在浏览器上输入  localhost     回车后会如果屏幕上显示:It works! 如下图: 这说明你的apache已开启 mac 下apache配置(mac自带apache ...

  5. mac 下安装 mysql (蛋疼)

    mac先安装mydql步骤 1.首先从官网上下载 mac版本的mysql:我的是mysql-5.7.20-macos10.12-x86_64.dmg 2.正常安装: 3.在系统偏好设置的最底下.1:是 ...

  6. Mac下安装MySQL 5.6.40

    Mac下安装MySQL 5.6.40 - 干勾鱼的CSDN博客 - CSDN博客   原创 Mac下安装MySQL 5.6.40 2018-06-18 10:34:03 我是干勾鱼 阅读数 5927 ...

  7. mac 下卸载mysql的方法

    今天在mac上瞎折腾时,把mysql玩坏了,想卸载重装,却发现找不到卸载程序,百度了下,将操作步骤备份于此: cd ~/ sudo rm /usr/local/mysqlsudo rm -rf /us ...

  8. Mac下安装Mysql出现 Can’t connect to local MySQL server through socket '/tmp/mysql.sock'

    在Mac下安装mysql出现 Can't connect to local MySQL server through socket '/tmp/mysql.sock' 错误,解决如下: $ unset ...

  9. Mac下安装MySQL及启动等常用命令

    总结了下mac下的mysql安装步骤:   eclipse JavaEE 下载         JDK -9 macosx下载   一.安装及启动服务 1. MySQL Server 下载.(以mys ...

随机推荐

  1. 关于直接创建视图UITableViewController显示(初学)

    今天渣渣想直接创建一个UITableView视图作为根视图来用结果发现有警告,才明白TableView和view是不能直接作为根视图的,需要放在ViewController上.做个笔记详细了解下. 参 ...

  2. 转载:Restore SQL Server database and overwrite existing database

    转载自:https://www.mssqltips.com/sqlservertutorial/121/restore-sql-server-database-and-overwrite-existi ...

  3. Centos7下安装iF.svnadmin实现web方式管理svn(源码安装)

    iF.SVNAdmin 是一个基于 Web 的,用来管理 Subversion 的认证文件的项目.无需数据库支持,直接对 Subversion 的认证文件和用户认证文件进行设置,支持 LDAP,同时也 ...

  4. 一些网摘的hpc材料

    source from: https://computing.llnl.gov Factors determines a large-scale program's performance 4     ...

  5. [未完成][Mooc]关于IO总结

    整个课程的大纲:1.编码问题.2.File类的使用3.RandomAccessFile的使用4.字节流的使用.5.字符流的使用.6.对象的序列化和反序列化. 视频1:文件的编码Eclipse的一大特点 ...

  6. MSP430常见问题之FLASH存储类

    Q1:用IAR Embedded Workbench for MSP430 通过JTAG往MSP430上写程序.为了知道片内程序的版本,必须读出Flash 中内容.什么工具软件可以通过JTAG口实现这 ...

  7. Linux内核开发基础

    1.Linux内核简介 1.1.Linux系统如何构成 内核空间(Kernel Space)+用户空间(User Space) 用户空间 = 用户程序 + C语言库(例如:GNC C Library) ...

  8. Servlet & JSP - getParameter 与 request.getAttribute 的区别

    getParameter 方法获取的是表单或 URL 的请求参数.参数是从 Web 客户端传递至 Web 服务端.例如有如下的 servlet: @WebServlet(name = "he ...

  9. Linux 命令 - killall: 通过进程名向进程发送信号

    命令格式 killall [-Z CONTEXT] [-u USER] [ -eIgiqrvw ] [ -SIGNAL ] NAME... killall -l, --list killall -V, ...

  10. Linux C编程--main函数参数解析

    我们经常用的main函数都是不带参数的.因此main 后的括号都是空括号.实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数.C语言规定main函数的参数只能有两个, 习惯上这 ...