• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

coreseek配置以及增量索引合并索引

php 搞代码 3年前 (2022-01-22) 13次浏览 已收录 0个评论

引导:本人是个php菜鸟,公司的业务并不繁琐,但是最近使用到了全文搜索,就想着用sphinx。
大致分为三个部分,1:安装;2配置:3调用api 。这里主要说一下配置及调用api。安装的步骤我之前单独写了一个帖子可以去看看,如果不太明白可以去官网,安装步骤说的很清楚,废话不多说,开始。
一、为什么要用增量索引?其实我个人认为对数据量小的业务来说用增量索引完全没有必要。可以定时重新生成索引就OK了。增量索引就是对 截至到上次生成的索引 以后添加的内容单独生成索引,这样数据量比较小,并且不影响业务处理,然后定期进行索引合并,为了保持数据统一性,还需要定期从新生成索引。
1、上次生成索引的id需要记录下来,可以用一张表来存储。

CREATE TABLEtbl_pre_coursevideo( idint(11) NOT NULL DEFAULT '0', maxidint(11) NOT NULL DEFAULT '0',  PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、配置文件

source mysql{ type                    = mysql    sql_host             = 127.0.0.1    sql_user              = root    sql_pass              = 123456    sql_db                = test    sql_port              = 3306    sql_query_pre        = SETNAMES utf8    sql_query_pre       = SETSESSION query_cache_type=OFF #如果这里报错去mysql配置文件修改    sql_query_pre         = REPLACEINTO tbl_pre_coursevideo SELECT1, MAX(id) FROM tbl_coursevideo    #在刚才新建的表中将当前索引生成的最多id存起来,为增量索引做准备。    sql_query                = SELECT id,title,create_time, subtitle,content,type FROM tbl_coursevideo WHERE id <=(SELECT maxid FROM tbl_pre_coursevideo WHERE id=1)   #上面这条sql可以分为两部分WHERE 之前,是对数据的查询(根据自己的业务来定)where之后,是对刚才的记录   最大ID 的筛选    sql_attr_uint            = id           #从SQL读取到的值必须为整数     sql_attr_timestamp        = create_time #从SQL读取到的值必须为整数,作为时间属性    sql_field_string          = title  #字符串字段(可全文搜索,可返回原始文本信息)       sql_field_string          = subtitle  #字符串字段(可全文搜索,可返回原始文本信息)       sql_field_string          = content  #字符串字段(可全文搜索,可返回原始文本信息)  }source increment : mysql{sql_query_pre = SETNAMES utf<div>……本2文来源gaodai.ma#com搞##代!^码@网3</div><code>搞代gaodaima码</code>8sql_query                = SELECT id,title,create_time, subtitle,content,type FROMtbl_coursevideo WHERE id >(SELECT maxid FROM tbl_pre_coursevideo WHERE id=1)#这是增量索引的数据源sql。和上面保持一致,唯一的变化,就是where条件之后,这里查询的是大于上次重新生成索引的id,即:刚刚添加的数据}#index定义index mysql{   source            = mysql             #对应的source名称    path            = /usr/local/coreseek/var/data/mysql#请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...    docinfo            = extern    mlock            = 0morphology        = none    min_word_len        = 1html_strip                = 0    #中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/    charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾    #charset_dictpath = etc/                             #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...    charset_type        = zh_cn.utf-8}index increment : mysql{  source=increment    path            = /usr/local/coreseek/var/data/increment    charset_dictpath = /usr/local/mmseg3/etc/    charset_type    = zh_cn.utf-8}#全局index定义indexer{    mem_limit            = 128M}#searchd服务定义searchd{    listen                  =   9312read_timeout        = 5max_children        = 30max_matches            = 1000seamless_rotate        = 0preopen_indexes        = 0unlink_old            = 1    pid_file = /usr/local/coreseek/var/log/searchd_mysql.pid  #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...    log =/usr/local/coreseek/var/log/searchd_mysql.log       #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...    query_log =/usr/local/coreseek/var/log/query_mysql.log  #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:coreseek配置以及增量索引合并索引
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址