1、修改sphinx配置文件?

source 数据源名称

{

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

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

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

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

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

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

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

  1. #索引数据源
  2. source = src1
  3. ##索引文件存放路径
  4. path = /home/yejianfeng/instance/coreseek/var/data/test1
  5. ####文档信息的存储模式,包括有none,extern,inline,默认是extern。
  6. ###docinfo 指的就是数据的所有属性(field)构成的一个集合。
  7. #首先文档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. django admin list_filter的使用

    一.举例 class CategoryTreeRelatedFieldListFilter(admin.SimpleListFilter): title = _('课程章节') parameter_n ...

  2. Source Insight 中文注释为乱码解决办法(完美解决,一键搞定)

    我从网上查了一堆解决办法,但是都是2017年以前的解决方案,并且都是针对于source insight 3.5及以下版本的,目前SI软件版本都到4.0了,应该有新方法出现了. ------------ ...

  3. java中自定义注释@interface的用法

    一.什么是注释     说起注释,得先提一提什么是元数据(metadata).所谓元数据就是数据的数据.也就是说,元数据是描述数据的.就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义.而J ...

  4. JavaScript反向shell

    Node.js反向Shell 摘自:http://www.itfang.net/?p=109 如下的Javascript就是一个Node.js的反向连接shell. 这个payload将会生成一个/b ...

  5. yarn 常用命令(基于vue框架)

    初始化项目 yarn add init 安装vue yarn add vue 安装webpack,webpack-dev-server(是一个小型的Node.js Express服务器) yarn a ...

  6. npm WARN unmet dependency错误解决方法

    在MAC上安装webpack以及reactjs等其它组件时,安装太慢卡住不动,直接ctrl+c终止后,再npm install后出npm WARN unmet dependency错误,npm cac ...

  7. html5中的input和label写法与取值

    demo 效果图如上 label是html5特有的,是定义 input 元素的标注.凡是input前面要有个label标识下,label和input真是一对好兄弟啊.<label> 标签的 ...

  8. Ubuntu16.04搭建Postfix作为SMTP服务器

    一.DNS配置 类型 名称  值  TTL   A mail  128.199.254.32  1小时  MX  @ mail.example.com(优先:10) 1小时  TXT @  v=spf ...

  9. [AWS] Amazon Cognito

    看懂 [AWS] User management and [AWS] OAuth2.0 才方便看到此篇. Ref: 常见 Amazon Cognito 场景 Amazon Cognito 的两个主要组 ...

  10. js中的构造函数

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...