SPHINX - 技术教程文章

小蚂蚁学习sphinx(1)--理论篇

网上有视频在讲php+mysql+sphinx,以前只是听说过,心想今天终于能够学习一下涨涨见识了,一个小时的理论篇讲完,并没有预想中那种汲取大量知识的满足感,一来讲的理论多一些,二来都是在linux下的操作,没办法实践,先把今天的小笔记写一下,以后慢慢钻研这块内容。 sphinx生成索引数据,并为数据库提供更专业的搜索功能。 为什么要用sphinx?1.做搜索时当数据量很大单纯的mysql搜索比较慢(如果表进行了分表会更慢)2.搜索...

Sphinx学习笔记(一)

最近负责一个项目,需要用到全文检索,我的环境大体如下: 1、数据保存在MySQL中 2、需要支持中文检索 3、尽可能的简单 选择了Sphinx,至于solr和Elasticsearch,看主页的介绍,它们对分布式、均衡等方面的支持非常好,只不过它们的安装包太大了,用起来挺不方便的,所以才放弃了它们,不过等有机会还可以研究一下。 基本步骤如下: 1、 安装:Sphinx的主页是http://sphinxsearch.com/,目前版本为2.2.8,下载...

sphinx中文入门指南 (转自sphinx中文站)【代码】

Sphinx中文入门指南wuhuiming<blvming在gmail.com>,转载请注明来源和作者 最后修改:2010年1月23日1、简介1.1.Sphinx是什么1.2.Sphinx的特性1.3.Sphinx中文分词2、安装配置实例2.1 在GNU/Linux/unix系统上安装 2.1.1 sphinx安装2.1.2.sfc安装(见另文)2.1.3.coreseek安装(见另文)2.2 在windows下安装3、 配置实例4、应用4.1 在CLI上测试4.2 使用API调用5、附录1.Sphinx简介1.1.Sphinx是什么Sphinx是由俄罗斯人Andrew Aksyonoff开...

Sphinx匹配模式详解[转]

SphinxClient::setMatchMode ConstantDescriptionSPH_MATCH_ALL匹配所有查询词(默认模式).SPH_MATCH_ANY匹配查询词中的任意一个.SPH_MATCH_PHRASE将整个查询看作一个词组,要求按顺序完整匹配.SPH_MATCH_BOOLEAN将查询看作一个布尔表达式.SPH_MATCH_EXTENDED将查询看作一个Sphinx内部查询语言的表达式.SPH_MATCH_FULLSCAN使用完全扫描,忽略查询词汇.SPH_MATCH_EXTENDED2类似 SPH_MATCH_EXTENDED ,并支持评分和权重. S...

修改sphinx最大输出记录数【代码】【图】

修改sphinx最大输出记录数归纳如下: Sphinx的查询默认最大记录数是:1000,而我们想更改这个数值。就需要更改三个地方。 1是更改sphinx.conf配置文件的:max_matches = 10000 #后面数字就是你想查询的最大记录数。建议在1000~10000之内。 2是在api调用时,$cl->SetLimits($pageStart, $pageSize, $max_limits);用SetLimits的第三个参数更改为你想要的显示最大记录数。 3 修改sphinxclient.php 中max_matches问题是这样的,信息列...

ubuntu-10.04的测试环境 安装测试 Coreseek开源中文检索引擎-Sphinx中文版

主要参考文档:http://www.coreseek.cn/products-install/install_on_bsd_linux/一、32位版本:coreseek安装需要预装的软件:apt-get install make gcc g++ automake libtool mysql-client libmysqlclient15-dev libxml2-dev libexpat1-dev 二、CoreSeek快速安装:安装前,建议查看:源码包说明README;4.0/4.1版可参考3.2版本安装,步骤相同;如遇到问题,请看详细安装说明。 ##下载coreseek:coreseek 3.2.14:点击下载、coresee...

Sphinx全文检索 (一)【图】

全文检索一、生活中的数据总体分为:结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。非结构化数据:指没有固定格式或不定长的数据,如邮件,word文档等。非结构化数据还有一种叫法:全文数据。二、按数据的分类,搜索也分为两种:对结构化数据的搜索:如对数据库的搜索:SQL语句。再如windows的搜索:文件名,类型,修改时间。对非结构化数据的搜索:如windows对文件内容的搜索。Linux下得grep命令。再如Google...

SPHINX 文档写作工具安装简要指南 - windows 版 - 基于python【图】

此教程基于本地己安装好 PYTHON 并配置过全局变量;一定具备相应的基础再操作;上传图片以免产生误导,以下为文字描述,按下列操作即可:下载 get-pip.py脚本;python get-pip.py -(很多教程,执行这个文件,就直接使用PIP .其实还需要配置PIP的全局变量;如果知道全局PYTHON安装在哪里或是不知道,参考寻找目录为:C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Scripts)pip install sphinx -(这里安装部分...

Sphinx + Read the docs theme【代码】

前言:使用Sphinx 生成文档和使用 Read The Docs 的 readthedocs/sphinx_rtd_theme,假设是在Windows上运行并已安装好 python,可以执行python的 pip命令通过 pip命令安装 sphinx 和 sphinx_rtd_themepip install -U Sphinx pip install sphinx-rtd-theme在一个系统中的一个空的文件夹中运行: 如我在D 盘中新建了一个名字为 sphinx的文件夹sphinx-quickstart D:\>mkdir sphinx-studyD:\>cd sphinx-studyD:\sphinx-study>sphinx-quic...

【sphinx】sphinx4学习笔记【代码】

sphinx-core工程是个java工程,内带两个例子,一个是helloword,其中涵多个功能,例如录音,对齐等。(还未挨个实验)另一个是hellongram,就是语音识别。可以用到的参数文件有hellongram0.xml,hellongram9.xml,hellongram1.xml.其中1.xml中没有用到语言模型,而是用JSFG来定义句子的语言规则,貌似是用正则表达式规定了待识别的句子只有如下可能:(hello)(jim|kate|tom)等。hellongram0.xml是用于ngram语言模型的例子,xml文...

Sphinx 实时索引【代码】

index rt {type = rtrt_mem_limit = 512Mpath =/usr/local/sphinx/data/rtrt_field = titlert_field = contentrt_attr_uint = gid } searchd {workers = threadslisten =3312listen =3313:mysql41log=/usr/local/sphinx/var/log/searchd.logquery_log =/usr/local/sphinx/var/log/query.logread_timeout =5client_timeout =300max_children =30pid_file =/usr/loca...

使用sphinx生成美观的文档【图】

先上效果图详情首先,需要知道什么是restructuredtext,可以理解为类似于markdown的一个东西。然后安装,pip install sphinx进入存放文档的目录,在命令行,sphinx-quickstart,根据需要一路回车,会生成一堆东西,包括conf.py和make等根据需要修改conf.py编写rst文件,比如默认的index.rst或链接的rst文件。在命令行,make html上图的效果,是使用了一个主题叫sphinx_bootstrap_theme。(PS.有很多主题可以选择)conf.py中关于这个主...

Sphinx 一般索引加实时索引【代码】

source mysql {type = mysqlsql_host = 10.10.3.181sql_user = rootsql_pass = dsidealsql_db = dsideal_dbsql_port = 3306sql_sock = /usr/local/mysql/mysql.socksql_query_pre = SET NAMES utf8sql_query = SELECT id,resource_title,resource_type from infosql_attr_uint = resource_type } index index_mysql {source = mysql...

centos7下搭建sphinx全文检索引擎

Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用 程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL 也设计了一个存储引擎插件。我要使用Sphinx需要做以下几件事:1)、首先得有数据2)、建立Sphinx配置文件3)、生成索引4)、启动Sphinx5)、php操作使用之(调用api或search.exe程序进行查...

适合初学者的理解Sphinx运行方式【图】

#网上虽然有这么一张图,但是解释很少,我也觉得只看这张图很难深刻理解Sphinx,下面我通俗的介绍一下;#首先有一个MySQL主库,这个主库的存储引擎是InnoDB;#服务器运行两个MySQL从库进程,假定端口号分别是3306和3406;#创建主库和从库的目的是为了让数据库一直处于工作状态;#端口号为3306的进程包括MyISAM和Sphinx两个存储引擎,用于直接对接php&SQL查询;#端口号为3306的进程包括两类数据表,一个是MyISAM表,另一个是Sphinx表...

Sphinx性能【图】

(1)高速建立索引:建索引速度达到单核10-15mb/s; (2)高速查询:100万记录(约1.2GB数据)下,单核每秒支持约200次搜索; (3)高扩展性:已知最大索引簇支持对30亿条记录建立索引,每天单个连接5千万次搜索; (4)强大附属功能:支持分布式搜索,中文分词引擎,c/java/python/php等多语言支持,支持MySQL,也可以自建索引(xml pipe mechanism)支持KV等其他存储。(5)高性能搜索(在2-4 GB的文本上搜索,平均0.1秒内获得结果)...

sphinx-python文档化【代码】

概述下文讲述使用sphinx自动生成reStructuredText python API文档的简单过程。配置流程安装依赖$ pip install sphinx blurb python-docs-theme创建项目$ mkdir demo $ cd demo# 自动生成配置文件 demo $ sphinx-quickstart项目相关文件说明(以默认配置为例)项目结构:# demo/conf.py Makefile make.bat _build/ |--doctrees/|--environment.pickle|--index.doctree |--html/|--_sources/|--_static/index.html... _static/ _temp...

sphinx安装

相关命令及步骤 创建主索引: /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --all 创建增量索引: 1. 创建测试数据表以及数据 2. 修改配置文件 主索引源:sql_query_pre 增量索引源:sql_query_pre sql_query sql_query_post 主索引:source path 增量索引:source path 3. 创建/更新主索引 4. 创建/更新增量索引 ...

sphinx和elasticseach使用感受

公司项目需要,要将mysql数据库中的数据快速检索并分词。 开始使用的是sphinx,这个搜索引擎安装,配置,使用,都比较简单,无需安装其他插件,相对来说功能比较单一。 对于新增记录,我的处理方法是添加增量索引,定期合并到主索引,这导致索引体积越来越大。由于sphinx在运行时是将这些索引放在内存里的,如果索引体积超出内存容量,会导致报错无法执行,所以如果想用sphinx做搜索引擎的话,请务必做好事先规划。 sphin...

Sphinx全文索引详细介绍及其安装例子

Sphinx全文索引(要lanmp环境哦) 比如:你要搜索乐杨俊,能后通过php程序去sphinx创建的索引表里面搜索相应的记录,sphinx找到后在去MySQL数据库里面select * from nameTable where name=’乐杨俊’;搜索速度大大提升---sphinx是夹在PHP和MySQL中间的详细的走整理出了个文档,在我的资源里面去下载即可,过程很详细,及其PHP操作sphinx的案例原文:http://blog.csdn.net/leyangjun/article/details/39051843

使用sphinx快速生成Python API 文档【代码】【图】

一 简单介绍不管是开源还是闭源,文档都是很重要的。当然理论上说,最好的文档就是代码本身,但是要让所有人都能读懂你的代码这太难了。所以我们要写文档。大部分情况,我们不希望维护一份代码再加上一份文档,这样做很容易造成文档和代码的不一致,程序员最讨厌更新文档了。所以最佳实践就是在程序员代码中加注释,然后通过构建脚本自通生成文档,包括html,latex,pdf等。对应于Pyhon,有很多可供选择的工具:sphinx 中文版介绍...

sphinx增量索引和主索引来实现索引的实时更新【代码】

项目中文章的信息内容因为持续有新增,而文章总量的基数又比较大,所以做搜索的时候,用了主索引+增量索引这种方式来实现索引的实时更新。实现原理:1. 新建一张表,记录一下上一次已经创建好索引的最后一条记录的ID 2. 当索引时,然后从数据库中取出所有ID大于上面那个sphinx中的那个ID的数据, 这些就是新的数据,然后创建一个小的索引文件 3. 把上边我们创建的增量索引文件合并到主索引文件上去 4. 把最后一条记录的ID更新到第一...

如何将Sphinx配置成缓存服务器【图】

大家都知道Sphinx是一个全文索引程序,它的高速查询能力也是有目共睹的。除了这些,我们是否还能挖掘点别的功能出来呢?不如作为一个简单的缓存服务器。 先来了解下Sphinx的使用的文件,Sphinx使用的文件包括 .sph, .spa, .spi, .spd, .spp, .spm ,.spl大家都知道Sphinx是一个全文索引程序,它的高速查询能力也是有目共睹的。除了这些,我们是否还能挖掘点别的功能出来呢?不如作为一个简单的缓存服务器。先来了解下Sphinx的使用...

php-Sphinx RT索引和SphinxQL查询【代码】

我们正在架构中部署RT索引.但是我们需要澄清一下,并在部署过程中面临一些困难. 索引中定义的架构:index logtable{type = rtpath = /usr/local/sphinx20/var/data/logtablert_attr_string = TransactionIdrt_attr_uint = CustomerIdrt_attr_timestamp = DateOfTransactionrt_attr_string = CustomerFeedbackrt_field = TransactionType}面临的问题 问题1: 我们如何在SPHINXQL中获得count()查询结果.因为它对我们很重要,所以...

sphinx增量索引分布式索引实例

增量索引,其实就是增加的内容,例如:存款有100块,今天挣了10块,这10块就是增量了 分布式索引,可以这样理解,想开公司钱不够,需要向很多人借钱。也就是把大家钱集中一起使用。 一,测试表和数据 mysql desc sph_counter;+------------+---------+------增量索引,其实就是增加的内容,例如:存款有100块,今天挣了10块,这10块就是增量了 分布式索引,可以这样理解,想开公司钱不够,需要向很多人借钱。也就是把大家钱集中一起...

sphinx的SPH_MATCH_PHRASE模式如何用

sphinx的 SPH_MATCH_PHRASE 模式怎么用啊sphinx的 SPH_MATCH_PHRASE 模式怎么用啊 他的query怎么写 $cl->SetServer ( $host, $port ); $cl->SetMatchMode ( SPH_MATCH_PHRASE ); $cl->SetLimits ( 0, 20 ); $cl->SetWeights (array (10,1)); $res = $cl->Query ( 'dvd player', "search" );我想查抄 dvd player 这个词 和 photo 这两个词 要怎么写啊 希望高手指点下啊 谢谢了分享到:SetServer?(?$host,?$port?);$cl->SetMat.....

sphinx的updateAttributes方法

sphinx运行的时候执行了 updateAttributes 。执行之后可以查找到更新后的数据。 但过了一段时间好像又变回了原来的数据。不是很确定,但应该是这样。我查了下updateAttributes相关的内容,说这个是修改当前内存里的数据,如果要修改到文件,就需要重新启动引擎。我的问题是,修改了内存里的数据是不是说明这个值在sphinx重启之前一直保存在内存里? 还是,当这个文档从内存里移出的时候这些变更信息也随之移出?导致下次该文档重新...

PHP-Sphinx Search 2.2.5阿拉伯语无法正常运行【代码】

我正在尝试用阿拉伯语实现Sphinx搜索.我的安装已经完成,可以用英语搜索.但是,当我尝试按阿拉伯文字搜索时,搜索结果为空白.我提供了字符集(charset_table)以支持阿拉伯字母(将形态设置为stem_ar),但对我不起作用. 我的配置可以在我发布的链接http://sphinxsearch.com/forum/view.html?id=13130中找到. 任何建议都欢迎.解决方法:请试试ngram_len = 1 ngram_chars = U+3000..U+2FA1F, U+0622->U+0627, U+0623->U+0627, U+06...

dede57配置Sphinx支持typeid、mid

配置好Sphinx之后在dede的后台启用具体配置可以百度,我在这里只说一下Sphinx支持typeid这个查询条件。等我配置好之后发现dede的搜索是不支持typeid的找到代码之后发现写了代码了但是只是字符串类型的这儿应该是数组的所以不支持好了现在开始说如何改动了。找到include的目录找arc.searchview.class.php文件然后找到function CountRecordSphinx()函数下的大概是379行找到代码$this->sphinx->SetFilter(typeid, GetSonIds($this->Ty...

python – sphinx-apidoc选择子模块,但autodoc不会记录它们【代码】

我一直在研究PyQt5的项目(在这里找到:https://github.com/MaVCArt/StyledPyQt5),该项目使用包结构使导入更合乎逻辑.到目前为止,我已经相对成功地使用Sphinx记录了代码,至少在我介绍包结构之前. (以前,一切都在一个文件夹中) 以下是问题:当我运行sphinx-apidoc时,一切运行正常,没有错误.更重要的是,autodoc很好地接收了我所有的子模块.这是我的一个文件的内容:styledpyqt package ==================Subpackages -----------.. t...