1、修改sphinx配置文件?

source 数据源名称

{

type = mysql ######数据源类型

sql_host = #######数据库主机地址(如果是外网,请确保防火墙允许链接)

sql_user = root ####数据库用户名称

sql_pass = #######数据库密码

sql_db = #####数据库名称

sql_port = ######数据库服务器端口号

sql_query_pre = 执行SQL前设置的编码(SET NAMES utf8)

sql_query = 全文检索要显示的内容,据官方说法:尽可能不要使用where 或者groupby,将其交给sphinx效率会更高;
select出来的字段必须包含至少一个唯一主键,以及全文检索的字段sphinx会对select中的字段1,字段2建立sphinx自己的索引,以及在查询
的字段中查找键字, ###如果使用Unix sock连接可以使用这个
sql_sock = /tmp/mysql.sock ##indexer和mysql之间的交互,需要考虑到效率和安全性。
###比如考虑到效率,他们两者之间的交互需要使用压缩协议;考虑到安全,他们两者之间的传输需要使用ssl
###那么这个参数就代表这个意思,0/32/2048/32768 无/使用压缩协议/握手后切换到ssl/Mysql 4.1版本身份认证。
##mysql_connect_flags = 32 ##当mysql_connect_flags设置2048(ssl)的时候,下面几个就代表所需要使用的几个参数。
#mysql_ssl_cert = /etc/ssl/client-cert.pem
#mysql_ssl_key = /etc/client-eky.pem
#mysql_ssl_ca = /etc/ssl/cacert.pem ###mssql特有,是否使用windows登录
#mssql_winauth = 1 ####mssql特有,是使用Unicode还是单字节数据。
#mssql_unicode = 1 #request Unicode data from server ###odbc的dsn串
#odbc_dsn = ###SQL某一列的缓冲大小,一般是针对字符串来说的。
###为什么要有这么一种缓冲呢?
#有的字符串,虽然长度很长,但是实际上并没有使用那么长的字符,所以在SPhinx并不会收录所有的字符,而是给每个属性一个缓存作为长度限制。
##默认情况下非字符类型的属性是1KB,字符类型的属性是1MB。
###而如果想要配置这个buffer的话,就可以在这里进行配置了。
###sql_column_buffers = content=12M, comments=1M ##indexer的SQL执行语句
sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents ###有的时候有多个表,我们想要查询的字符在其他表中,这个时候要对sql_query进行join操作。
#而这个join操作可能非常慢,导致建立索引的时候特别慢,那么这个时候,就可以考虑sphinx端进行join操作了。
##sql_joined_field是增加一个字段,这个字段是从其他查询中查询出来的。
#这里封号后面的查询语句是有要求的,如果是query,则返回id和查询字段,如果是payload-query,则返回id,查询字段和权重。
###并且这里的后一个查询要按照id进行升序排序。 #sql_join_field = tags from query; select docid,concat('tag', tagid) from tags order by docid asc;
# sql_joined_field = wtags from payload-query; SELECT docid, tag, tagweight FROM tags ORDER BY docid ASC ##外部文件字段,意思就是一个表中,有一个字段存的是外部文件地址,但是实际的字段内容在文件中。比如这个字段叫做content_file_path. ##当indexer建立索引的时候,查到这个字段,就读取这个文件地址,然后加载,并进行分词和所以建立等操作。
# sql_file_field = content_file_path ##当数据源数据太大的时候,一个语句查询下来往往很可能锁表操作。 ###那么我们就可以使用多次查询,那么这个多次查询就需要有个范围和步长,sql_query_range和sql_range_step就是做这个使用的。
####而5次SQL查询每次的时间间隔时间是使用sql_ranged_rhrottle来进行设置的,单位是毫秒。
#sql_query_range = SELECT MIN(id), MAX(id) FROM documents
#sql_range_step = 1000
#sql_ranged_throttle = 0 ###下面就是些不同属性的数据了
###先要了解属性的概念,属性是存在索引中的,他不进行全文索引,但是可以用于过滤和排序, ###uint 无符号整型属性
sql_attr_uint = group_id ###bool属性
#sql_atttr_bool = is_deleted ##长整型属性
sql_attr_bigint = my_bigint_id ##时间戳属性吗,经常被用于排序 sql_attr_timestamp = date_added ###字符串排序属性,一般我们按照字符串排序的话,我们会将字符串存下来进入到索引中没然后在查询的时候比较索引中的字符大小进行排序。
####但是这个时候索引就会很大,于是我们就想到了一个方法,我们在建立的时候,先将字符串值从数据库中取出,暂存,排序。
#####然后给排序后的数组分配一个序号,然后建立索引的时候,就将这个序号引入到索引中去,这样在查询的时候也就能完成字符串排序的操作。 ####这, 就是这个字段的意义。
#sql_attr_str2ordinal = author_name ##浮点数属性,经常在查询地理纬度的时候会用到。 #sql_attr_float = lat_dadians
@sql_attr_float = long_radians ###多值属性(MVA)
###试想一下,有一个文章系统,每篇文章都有多个标签,这个文章就叫多值属性。
#####我要对某个标签进行查询过滤,那么在建立查询的时候就应该把这个标签的值放入到索引中。
#这个字段,sql_attr_multi就是用来做这个事情的,
# sql_attr_multi = uint tag from query; SELECT docid, tagid FROM tags
# sql_attr_multi = uint tag from ranged-query; \
# SELECT docid, tagid FROM tags WHERE id>=$start AND id<=$end; \
# SELECT MIN(docid), MAX(docid) FROM tags #字符串属性,
#sql_attr_string = stitle ## 文档词汇数记录属性。比如下面就是在索引建立的时候增加一个词汇数的字段
# sql_attr_str2wordcount = stitle ## 字符串字段,可全文搜索,可返回原始文本信息。
# sql_field_string = author ## 文档词汇数记录字段,可全文搜索,可返回原始信息
# sql_field_str2wordcount = title ## 取后查询,在sql_query执行后立即操作。
## 它和sql_query_post_index的区别就是执行时间不同
## sql_query_post是在sql_query执行后执行,而sql_query_post_index是在索引建立完成后才执行。
## 所以如果要记录最后索引执行时间,那么应该在sql_query_post_index中执行。
# sql_query_post = ## 参考sql_query_post的说明。
# sql_query_post_index = REPLACE INTO counters ( id, val ) \
# VALUES ( 'max_indexed_id', $maxid ) ####命令行获取信息查询
###什么意思呢? #我们进行索引一般只会返回组件id,而不会返回表中的所有字段。
###但是在调试的时候,我们一般需要返回表中的字段,那这个时候,就需要使用sql_query_info.
###同时这个字段只在控制台有效,在API中是无效的。
sql_query_info = SELECT * FROM documents where id = $id;

}

sphinx的source是有继承这么一种属性的,意思就是除了父source之外,这个source还有这个特性。

source src1throttled : src1

{

sql_ranged_throttle = 100

}

索引test1

index test1

{

##索引类型,包括有plain,distributed和rt。分别是普通索引/分布式索引/增量索引。默认是plain。

#type = plain

#索引数据源
source = src1 ##索引文件存放路径 path = /home/yejianfeng/instance/coreseek/var/data/test1 ####文档信息的存储模式,包括有none,extern,inline,默认是extern。
###docinfo 指的就是数据的所有属性(field)构成的一个集合。
#首先文档id是存储在一个文件中的(spa)

}

php之sphinx的更多相关文章

  1. 利用sphinx为python项目生成API文档

    sphinx可以根据python的注释生成可以查找的api文档,简单记录了下步骤 1:安装 pip install -U Sphinx 2:在需要生成文档的.py文件目录下执行sphinx-apido ...

  2. 安装PHP sphinx扩展 sphinx-1.1.0/sphinx.c:105:2: error: too few arguments 错误

    表现: /home/sphinx-1.1.0/sphinx.c: In function 'php_sphinx_client_read_property':/home/sphinx-1.1.0/sp ...

  3. 【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)

          一,软件准备 coreseek4.1 (包含coreseek测试版和mmseg最新版本,以及测试数据包[内置中文分词与搜索.单字切分.mysql数据源.python数据源.RT实时索引等测 ...

  4. coreseek+sphinx+mysql+thinkphp整合

    1.安装coreseek 1.1首先升级或安装系统依赖库 yum install make gcc g++ automake libtool mysql-client libmysqlclient15 ...

  5. 全文检索解决方案(lucene工具类以及sphinx相关资料)

    介绍两种全文检索的技术. 1.  lucene+ 中文分词(IK) 关于lucene的原理,在这里可以得到很好的学习. http://www.blogjava.net/zhyiwww/archive/ ...

  6. 如何将Sphinx生成的html文档集成进入Django

    参考 http://stackoverflow.com/questions/10594618/django-and-sphinx-how-to-view-the-html-sphinx-generat ...

  7. Linux下搭建coreseek(sphinx+mmseg3)全文检索

    测试平台:Center OS 1.设置环境,升级/安装系统基础依赖包:m4.autoconf.automake.libtool #设置路径和中文环境: $ export PATH=/usr/local ...

  8. debian下使用Sphinx异常“Could not import extension sphinx.builders.linkcheck (exception: cannot import name SSLError)”的解决

    最近使用到Sphinx编译文档,出现如下异常: Extension error:Could not import extension sphinx.builders.linkcheck (except ...

  9. [搜索引擎]Sphinx的介绍和原理探索

    What/Sphinx是什么 定义 Sphinx是一个全文检索引擎. 特性 索引和性能优异 易于集成SQL和XML数据源,并可使用SphinxAPI.SphinxQL或者SphinxSE搜索接口 易于 ...

  10. Sphinx安装配置应用

    Sphinx 是由俄罗斯人Andrew Aksyonoff开发的一个全文搜索引擎.意图为其他应用提供高速.地空间占用.高结果相关度的全文搜索功能.Sphinx可以非常容易的与SQL数据库和脚本语言集成 ...

随机推荐

  1. idea 导入 android项目

    1. 2. 主要是勾选上面选项. next next 导入即可

  2. 截图工具(window 10 和Mac OSX)

      Win10上截图 1.使用系统截图工具 所有程序中可以看到 通过win+R,打开运行,输入"SnippingTool" 文件位于: C:\Windows\System32\Sn ...

  3. 9patch图的尺寸尽量为偶数

    美工做了一张.9的背景图,宽度110*80 像素,描点如下: 放到720p的智能电视上观看,总感觉怪怪的.仔细观看可以发现,前景图总是不能完全的覆盖掉背景图.总有那么一个像素的点多余出来,如图所示: ...

  4. JS原生实现视频弹幕Demo(仿)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  5. mysql 修改表的每个列的字符类型

    #!/bin/shfor i in $(mysql -uroot -p112358s uarticles_2019 -e "show tables;"|egrep -v Table ...

  6. hdoj:2037

    #include <iostream> using namespace std; struct Time { int start; int end; }; Time times[]; ]; ...

  7. Linux系统排查4——网络篇

    用于排查Linux系统的网络故障. 网络排查一般是有一定的思路和顺序的,其实排查的思路就是根据具体的问题逐段排除故障可能发生的地方,最终确定问题. 所以首先要问一问,网络问题是什么,是不通,还是慢? ...

  8. java.util.HashMap的简单介绍

    1. java.util.HashMap的底层实现是数组+链表. 2. 简介put(key, value)方法的执行过程: 1)通过key值,使用散列算法计算出来一个hash值,用来确定该元素需要存储 ...

  9. 如何用Baas快速在腾讯云上开发小程序-系列3 :实现腾讯云COS API调用

    版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/640268001487425627 来源:腾云阁 h ...

  10. [转]openstack-kilo--issue(十四)Tunnel IP %(ip)s in use with host %(host)s'

    bug: http://lists.openstack.org/pipermail/openstack-operators/2015-August/007924.html https://bugs.l ...