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

coreseek添加增量索引后无法生效,是怎么回事?

php 搞代码 3年前 (2022-01-23) 24次浏览 已收录 0个评论
文章目录[隐藏]

<body>

windows7 64位环境下,用的是3.2.14 win32的版本。

问题:启动searchd服务后,再添加的索引都无效,只有重启searchd服务后才能生效。

主索引:mysql
增量索引:new

操作过程:
1.建立主索引:

<code>indexer -c csft.conf mysql</code>

2.启动服务:

<code>serachd</code>

3.通过php进行搜索:
能找到8条结果

4.数据库中新添加相关关键词的数据

5.添加增量索引
indexer -c csft.conf new –rotate

6.通过php进行搜索
结果还是8条

7.或者试一下合并索引:

<code>indexer -c csft.conf mysql new -merge-dst-range deleted 0 0 --rotate</code>

8.通过php进行搜索
结果仍然是8条

9.重新建立主索引:

<code>indexer -c csft.conf mysql --rotate</code>

10.通过php进行搜索
结果仍然是8条

11.关闭原有的searchd服务,再启动searchd服务,则查询的结果就有了刚才插入的数据
(奇怪的是,如果不关闭原来的searchd服务,直接在建索引的那个窗口中启动searchd服务,搜索的结果会变,但只有两三条,不知这又是什么原因?)

配置文件:

<code>#MySQL数据源配置,详情请查看:http://www.coreseek.cn/products-install/mysql/#请先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库#源定义source mysql{    type                    = mysql    sql_host                = localhost    sql_user                = root    sql_pass                = root    sql_db                    = mall    sql_port                = 3306    sql_query_pre            = SET NAMES utf8    #插入文章表的最大id    sql_query_pre           = REPLACE INTO acticle_new SELECT 1, MAX(id) FROM acticle          sql_query                = SELECT id, title,content FROM acticle                                                              #sql_query第一列id需为整数                                                              #title、content作为字符串/文本字段,被全文索引    #sql_attr_uint            = group_id           #从SQL读取到的值必须为整数    #sql_attr_timestamp        = date_added #从SQL读取到的值必须为整数,作为时间属性    sql_query_info_pre      = SET NAMES utf8                                        #命令行查询时,设置正确的字符集    sql_query_info            = SELECT * FROM acticle WHERE id=$id #命令行查询时,从数据库读取原始数据信息}#增量数据源source new:mysql{ sql_query_pre            = SET NAMES utf8  sql_query=select id,title,content from acticle where id>(select newid from acticle_new where id=1);  sql_query_post  = REPLACE INTO acticle_new SELECT 1, MAX(id) FROM acticle  sql_query_post_index  = REPLACE INTO acticle_new SELECT 1, MAX(id) FROM acticle }#index 主索引定义index mysql{    source            = mysql             #对应的source名称    path            = E:/coreseek/var/data/mysql #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...    docinfo            = extern    mlock            = 0    morphology        = none    min_word_len        = 1 //最小索引词长度,设置后无效,原因不明    html_strip                = 0    #中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/    #charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾    charset_dictpath = E:/coreseek/etc/                             #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...    charset_type        = zh_cn.utf-8    }#增量索引index new:mysql{    type=rt    source            = new             #对应的source名称    path            = E:/coreseek/var/data/new #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...    docinfo            = extern    mlock            = 0    morphology        = none    min_word_len        = 1 //最小索引词长度    html_strip                = 0    #中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/    #charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾    charset_dictpath = E:/coreseek/etc/                             #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...    charset_type        = zh_cn.utf-8    }#全局index定义indexer{    mem_limit            = 128M}#searchd服务定义searchd{    listen                  =   9312    read_timeout        = 5    max_children        = 30    max_matches            = 1000    seamless_rotate        = 0    preopen_indexes        = 0    unlink_old            = 1    pid_file = E:/coreseek/var/log/searchd_mysql.pid  #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...    log = E:/coreseek/var/log/searchd_mysql.log        #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...    query_log = E:/coreseek/var/log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...}</code>

回复内容:

<body>

windows7 64位环境下,用的是3.2.14 win32的版本。

问题:启动searchd服务后,再添加的索引都无效,只有重启searchd服务后才能生效。

主索引:mysql
增量索引:new

操作过程:
1.建立主索引:

<code>indexer -c csft.conf mysql</code>

2.启动服务:

<code>serachd</code>

3.通过php进行搜索:
能找到8条结果

4.数据库中新添加相关关键词的数据

5.添加增量索引
indexer -c csft.conf new –rotate

6.通过php进行搜索
结果还是8条

7.或者试一下合并索引:

<code>indexer -c csft.conf mysql new -merge-dst-range deleted 0 0 --rotate</code>

8.通过php进行搜索
结果仍然是8条

9.重新建立主索引:

<code>indexer -c csft.conf mysql --rotate</code>

10.通过php进行搜索
结果仍然是8条

11.关闭原有的searchd服务,再启动searchd服务,则查询的结果就有了刚才插入的数据
(奇怪的是,如果不关闭原来的searchd服务,直接在建索引的那个窗口中启动searchd服务,搜索的结果会变,但只有两三条,不知这又是什么原因?)

配置文件:

<code>#MySQL数据源配置,详情请查看:http://www.coreseek.cn/products-install/mysql/#请先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库#源定义source mysql{    type                    = mysql    sql_host                = localhost    sql_user                = root    sql_pass                = root    sql_db                    = mall    sql_port                = 3306    sql_query_pre            = SET NAMES utf8    #插入文章表的最大id    sql_query_pre           = REPLACE INTO acticle_new SELECT 1, MAX(id) FROM acticle          sql_query                = SELECT id, title,content FROM acticle                                                              #sql_query第一列id需为整数                                                              #title、content作为字符串/文本字段,被全文索引    #sql_attr_uint            = group_id           #从SQL读取到的值必须为整数    #sql_attr_timestamp        = date_added #从SQL读取到的值必须为整数,作为时间属性    sql_query_info_pre      = SET NAMES utf8                                        #命令行查询时,设置正确的字符集    sql_query_info            = SELECT * FROM acticle WHERE id=$id #命令行查询时,从数据库读取原始数据信息}#增量数据源source new:mysql{ sql_query_pre            = SET NAMES utf8  sql_query=select id,title,content from acticle where id>(select newid from acticle_new where id=1);  sql_query_post  = REPLACE INTO acticle_new SELECT 1, MAX(id) FROM acticle  sql_query_post_index  = REPLACE INTO acticle_new SELECT 1, MAX(id) FROM acticle }#index 主索引定义index mysql{    source            = mysql             #对应的source名称    path            = E:/coreseek/var/data/mysql #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...    docinfo            = extern    mlock            = 0    morphology        = none    min_word_len        = 1 //最小索引词长度,设置后无效,原因不明    html_strip                = 0    #中文分词配置,详情请查看:http://www.coreseek.cn/products-in<a>2本文来源gao*daima.com搞@代#码&网6</a><pre>搞gaodaima代码

stall/coreseek_mmseg/ #charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾 charset_dictpath = E:/coreseek/etc/ #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/… charset_type = zh_cn.utf-8 }#增量索引index new:mysql{ type=rt source = new #对应的source名称 path = E:/coreseek/var/data/new #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/… docinfo = extern mlock = 0 morphology = none min_word_len = 1 //最小索引词长度 html_strip = 0 #中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/ #charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾 charset_dictpath = E:/coreseek/etc/ #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/… charset_type = zh_cn.utf-8 }#全局index定义indexer{ mem_limit = 128M}#searchd服务定义searchd{ listen = 9312 read_timeout = 5 max_children = 30 max_matches = 1000 seamless_rotate = 0 preopen_indexes = 0 unlink_old = 1 pid_file = E:/coreseek/var/log/searchd_mysql.pid #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/… log = E:/coreseek/var/log/searchd_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/… query_log = E:/coreseek/var/log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/…}


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:coreseek添加增量索引后无法生效,是怎么回事?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

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

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

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