Sphinx 优点

高速索引(接近10M/S)

高速搜索(2-4G文本搜索耗时不到0.1秒)

高可用性(单CPU支持100GB文本,100M文档)

提供相关性排名、分布式搜索、文档摘要(高亮显示)

Sphinx 缺点

必须有主键

主键必须是整形

不负责数据存储

配置复杂

Sphinx是介于PHP和mysql的中间层,它提供比mysql更专业的搜索功能,性能更高,因为存在于mysql之前,可以更好的缓解数据库压力

安装

sudo apt-get install sphinxsearch -y

安装完成后在 / etc / sphinxsearch / 目录下有以下4个文件

example.sql 数据源,用于测试

sphinx.conf.dist 完整的配置,包含全部配置

sphinx.conf.sample 配置参考

sphinx-min.conf.dist  精简配置,包含主要配置

我们来看看 sphinx-min.conf.dist 中的配置项

拷贝sphinx-min.conf.dist 到当前目录下 sphinx.conf

源配置:

source src1

{

type=mysql

sql_host=localhost

sql_user=test

sql_pass=sql_db=test

sql_port= 3306 # optional, default is 3306sql_query=SELECTid, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content FROM documents

sql_attr_uint=group_id

sql_attr_timestamp=date_added

}

源块包含源代码,用户名和密码到MySQL服务器的类型。 所述的第一列sql_query应该是唯一的ID。 SQL查询将在每个索引上运行,并将数据转储到Sphinx索引文件。 下面是每个字段和源块本身的描述。

type :数据源索引的类型。 在我们的例子,这是MySQL。 其他支持的类型包括pgsql,mssql,xmlpipe2,odbc等。

sql_host :主机名MySQL的主机。 在我们的例子,这是localhost 。 这可以是域或IP地址。

sql_user :数据库用户名

sql_pass :密码

sql_db :存储数据的数据库的名称

sql_query :查询从数据库到索引那转储数据。

索引配置:

index test1

{

source=src1

path= /var/lib/sphinxsearch/data/test1

}

source :源块的名称。 在我们的例子,这是src1的 。

path :路径保存索引。

端口和常量配置:

searchd

{

listen= 9312listen= 9306:mysql41

log= /var/lib/sphinxsearch/log/searchd.log

query_log= /var/lib/sphinxsearch/log/query.log

read_timeout= 5max_children= 30pid_file= /var/run/sphinxsearch/searchd.pid

seamless_rotate= 1preopen_indexes= 1unlink_old= 1workers= threads # forRT to work

binlog_path= /var/lib/sphinxsearch/data

}

该searchd的组件包含端口和其他变量来运行Sphinx守护进程。

listen :这Sphinx守护进程运行的端口,后面的协议。 在我们的例子,这是9306:mysql41。 已知的协议是:Sphinx (SphinxAPI)和:mysql41(SphinxQL)

query_log :路径保存查询日志

pid_file :到Sphinx守护进程的PID文件的路径。

seamless_rotate :同时旋转海量数据预缓存的指标,防止searchd的摊位。

preopen_indexes :是否强行盘前在启动时的所有索引。

unlink_old :是否删除成功旋转旧的索引拷贝。

管理索引

将数据添加到Sphinx索引

sudo indexer --all

Sphinx 2.2.9-id64-release (rel22-r5006)

Copyright (c) 2001-2015, Andrew Aksyonoff

Copyright (c) 2008-2015, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file ‘/etc/sphinxsearch/sphinx.conf‘...

indexing index ‘test1‘...

collected 4 docs, 0.0 MB

sorted 0.0 Mhits, 100.0% done

total 4 docs, 193 bytes

total 0.032 sec, 5922 bytes/sec, 122.75 docs/sec

skipping non-plain index ‘testrt‘...

total 4 reads, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg

total 12 writes, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg

表示创建索引成功

在生产环境中,有必要保持索引为最新。 为了做到这一点,让我们创建一个cronjob。 首先,打开crontab

crontab -e

可能会询问您要使用哪个文本编辑器。 选择你喜欢的; 在本教程中,我们使用nano 。

随后的cronjob将每小时运行一次,并使用我们之前创建的配置文件向索引添加新数据。 将其复制并粘贴到文件末尾,然后保存并关闭文件

@hourly /usr/bin/indexer --rotate --config /etc/sphinxsearch/sphinx.conf --all

现在Sphinx已经完全设置和配置,我们可以启动服务并尝试

启动 sphinx

默认情况下,Sphinx守护程序关闭。 首先,我们将改变这一行启用START=no到START=yes中/etc/default/sphinxsearch

sudo sed -i ‘s/START=no/START=yes/g‘ /etc/default/sphinxsearch

然后,使用systemctl重启Sphinx守护进程

sudo systemctl restart sphinxsearch.service

要检查Sphinx守护程序是否正确运行,请运行

sudo systemctl status sphinxsearch.service

测试

现在,一切都设置好了,让我们测试搜索功能。 使用MySQL接口连接到SphinxQL(在端口9306上)。 您提示将改变为mysql>

mysql -h0 -P9306

搜索:test1 代表sphinx配置文件中索引名称  match(搜索条件)

select * from test1 where match(‘another‘);

测试关键字

CALL KEYWORDS (‘test one three‘, ‘test1‘, 1);

输出:

+------+-----------+------------+------+------+

| qpos | tokenized | normalized | docs | hits |

+------+-----------+------------+------+------+

| 1 | test | test | 3 | 5 |

| 2 | one | one | 1 | 2 |

| 3 | three | three | 0 | 0 |

+------+-----------+------------+------+------+

3 rows in set (0.00 sec)

在结果上面可以看到,在test1的指数,Sphinx发现:

5个匹配在3个文档中的关键字‘test‘

2在1个文档中匹配关键字“1”

0匹配0个文档中的关键字‘three‘

原文:https://www.cnblogs.com/xiaoliwang/p/9484897.html

sphinx.conf listen = 9306:mysql41_Sphinx 安装与使用相关推荐

  1. 解决方案:indexer -c sphinx.conf --all FATAL: out of memory (unable to allocat

    打开sphinx.conf ,减少mem_limit的值 indexer{mem_limit=1024M} 改成512M 或者更小具体看你机器能给的内存

  2. httpd.conf linux,linux上安装apache以及httpd.conf基本配置

    1.yum安装apache yum install httpd -y 2.随系统自启动 chkconfig httpd on 3.开启apache service httpd start 在CentO ...

  3. SPHINX 文档写作工具安装简要指南 - windows 版 - 基于python

    此教程基于本地己安装好 PYTHON 并配置过全局变量:一定具备相应的基础再操作: 上传图片以免产生误导,以下为文字描述,按下列操作即可: 下载 get-pip.py脚本; python get-pi ...

  4. sphinx conf 文件模板

    #goods源定义 source goods {type = mysqlsql_host = localhostsql_user = rootsql_pass = rootsql_db = tests ...

  5. FD.io VPP startup.conf配置文件示例:安装后第一次配置

    FD.io VPP配置文件详解:https://rtoax.blog.csdn.net/article/details/108056964 ## Filename: startup.conf ## I ...

  6. sphinx随笔记了一下

    sphinx笔记 一:下载中文版coreseek包 1:解压后,将etc下的mysql.conf文件复制一份放到上级目录下,改名为sphinx.conf 2:配置文件: 2.1:source配置数据源 ...

  7. CentOS6.9编译安装Sphinx并使用php7的sphinx扩展实现全文搜索

    本篇笔记记录了CentOS6.9编译安装Sphinx,编译安装php-sphinx扩展,并使用php7的sphinx扩展实现全文搜索的过程 nginx+mysql+php安装请参考以下笔记: Cent ...

  8. Mac下使用Homebrew安装Sphinx和MySQL

    安装 假设你的系统上已经安装好饿 Homebrew,执行以下命令: ➜ ~ brew install mysql 启动MySQL: ➜ ~ mysql.server start 然后关闭MySQL: ...

  9. sphinx在windows下的简单安装与使用

    1.下载地址 http://sphinxsearch.com/downloads/release/,我这里下的是"Win64 binaries w/MySQL+PgSQL+libstemme ...

最新文章

  1. 解决Linux中文乱码
  2. 常考数据结构与算法:求二叉树的层序遍历
  3. Spring-引用Bean的属性值
  4. 2017年Q1安卓ROOT类恶意病毒发展趋势研究报告
  5. C指针原理(1)-ATT汇编
  6. JAVA——实现七牛云对象存储Region对象采用配置方式生成解决方案
  7. 线性拟合和梯度下降python代码实现—面向对象(二)
  8. UVa 208 - Firetruck (回溯)
  9. 来华30载,这些都是Oracle的神来之笔……
  10. 从月薪8K的分析师到月薪2W,只因我有了这份工具清单!
  11. Windows Notepad 居然要迎来大更新了!
  12. 在回调中获取Url参数
  13. c语言程序设计徐立辉答案,C语言程序设计实验及习题指导
  14. 杰奇2.4珊瑚模板简繁转换出现乱码怎么解决
  15. 串口接反会不会烧IO
  16. 【渝粤教育】 国家开放大学2020年春季 1332中文学科论文写作 参考试题
  17. 用R画出染色体修饰图谱--超详细版本
  18. 【西祠日志】【17】初识AngularJS,下一代Web应用的前端
  19. Gym - 100519 B Bring Your Own Bombs 离散化+二分+思维
  20. 你真的了解验证码吗?

热门文章

  1. 蓝牙杂散超标_杂散发射
  2. php yaml扩展,php的扩展 - yaml
  3. 二年级上册计算题_小学二年级数学上册应用题与思维训练集锦500题
  4. java代码实现看帖回帖功能_求助Java窗口菜单如何实现复制粘贴剪切等功能(内附源代码)...
  5. linux下eaccelerator,memcache,memcached安装
  6. 计算机网络大一上学期期末考试试题及答案,大一第一学期期末计算机考试题及答案)...
  7. go通过thrift连接hbase_关于thrift协议改进畅想
  8. python如何查询数据库_Python数据库操作手册-数据库专栏,SQL Server
  9. php对象持久化,在 Oracle 中完成 PHP5 对象的持久
  10. 【深度学习】深入浅出transformer解决并行计算问题