新创建一个表保存最大id,区分主索引和增量索引
# 搜索索引相关
CREATE TABLE index_delta (
id SERIAL PRIMARY KEY,
max_id integer
);
INSERT INTO index_delta (id, max_id) VALUES (1, 0);
我这里直接插入数据,后边配置的时候直接使用update就行了,不然太麻烦。
配置文件;先大体测试了一下,应该没什么问题了,安装的3.2版本的coreseek,好多功能没有,不过够用了,先布置到线上看看效果
source main { type = pgsql sql_host = localhost sql_user = pgsql sql_pass = sql_db = bt sql_port = 5432 # optional, default is 3306 sql_query_pre = SET NAMES 'UTF8' sql_query_pre = UPDATE index_delta set id=1, max_id=max FROM (SELECT MAX(id) AS max FROM hash) AS foo; sql_query_range = SELECT MIN(id),MAX(id) FROM hash sql_range_step = 1000 sql_query = SELECT id, hash, extract('epoch' FROM insert_time)::int AS date_added, name, files \ FROM hash WHERE id>=$start AND id<=$end AND id<=(select max_id from index_delta ) # sql_attr_uint = hash sql_attr_timestamp = date_added # sql_field_string = name # sql_field_string = files sql_query_info_pre = SET NAMES utf8 sql_query_info = SELECT * FROM hash WHERE id=$id } source delta : main { sql_query_pre = SET NAMES 'UTF8' sql_query_range = SELECT a.min_id, b.max_id FROM (SELECT MAX(id) AS max_id FROM hash) AS b, \ (SELECT max_id AS min_id FROM index_delta) AS a sql_range_step = 1000 sql_query = SELECT id, hash, extract('epoch' FROM insert_time)::int AS date_added, name, files \ FROM hash WHERE id>(select max_id from index_delta ) AND id>=$start AND id<=$end } index main { source = main path = /usr/local/coreseek/var/data/main docinfo = extern # charset_type = sbcs # rt_field = name # rt_field = files mlock = 0 morphology = none min_word_len = 1 html_strip = 0 charset_dictpath = /usr/local/mmseg3/etc/ charset_type = zh_cn.utf-8 ngram_len=0 } index delta : main { source = delta path = /usr/local/coreseek/var/data/delta docinfo = extern mlock = 0 morphology = none min_word_len = 1 html_strip = 0 charset_dictpath = /usr/local/mmseg3/etc/ charset_type = zh_cn.utf-8 ngram_len=0 } indexer { mem_limit = 64M } index main { source = main path = /usr/local/coreseek/var/data/main docinfo = extern # charset_type = sbcs # rt_field = name # rt_field = files mlock = 0 morphology = none min_word_len = 1 html_strip = 0 charset_dictpath = /usr/local/mmseg3/etc/ charset_type = zh_cn.utf-8 ngram_len=0 } index delta : main { source = delta path = /usr/local/coreseek/var/data/delta docinfo = extern mlock = 0 morphology = none min_word_len = 1 html_strip = 0 charset_dictpath = /usr/local/mmseg3/etc/ charset_type = zh_cn.utf-8 ngram_len=0 } indexer { mem_limit = 64M }sphinx自带python的api接口,在源代码的api目录里,python api/test.py MP4,可以搜索MP4的关键字,测试一下可以用。 看了一眼sphinx.py,就是请求的listen端口。这个后边慢慢研究一下。 >>> import sphinxapi >>> c = sphinxapi.SphinxClient() >>> q = c.Query('world')
上一篇: freebsd上安装sphinx coreseek postgresql
下一篇: 记几个freebsd命令
0 Responses so far.