多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#定义一个数据源 source search_main { #定义数据库类型 type = mysql #定义数据库的IP或者计算机名 sql_host = localhost #定义连接数据库的帐号 sql_user = root #定义链接数据库的密码 sql_pass = test123 #定义数据库名称 sql_db = test #定义连接数据库后取数据之前执行的SQL语句 sql_query_pre = SET NAMES utf8 sql_query_pre = SET SESSION query_cache_type=OFF #创建一个sph_counter用于增量索引 sql_query_pre = CREATE TABLE IF NOT EXISTS sph_counter ( counter_id INTEGER PRIMARY KEY NOT NULL,max_doc_id INTEGER NOT NULL) #取数据之前将表的最大id记录到sph_counter表中 sql_query_pre = REPLACE INTO sph_counter SELECT 1, MAX(searchid) FROM v9_search #定义取数据的SQL,第一列ID列必须为唯一的正整数值 sql_query = SELECT searchid,typeid,id,adddate,data FROM v9_search where searchid<( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 ) and searchid>=$start AND searchid<=$end # sql_attr_uint和sql_attr_timestamp用于定义用于api过滤或者排序,写多行制定多列 sql_attr_uint = typeid sql_attr_uint = id sql_attr_timestamp = adddate #分区查询设置 sql_query_range = SELECT MIN(searchid),MAX(searchid) FROM v9_search #分区查询的步长 sql_range_step = 1000 #设置分区查询的时间间隔 sql_ranged_throttle = 0 #用于CLI的调试 sql_query_info = SELECT * FROM v9_search WHERE searchid=$id } #定义一个增量的源 source search_main_delta : search_main { sql_query_pre = set names utf8 #增量源只查询上次主索引生成后新增加的数据 #如果新增加的searchid比主索引建立时的searchid还小那么会漏掉 sql_query = SELECT searchid,typeid,id,adddate,data FROM v9_search where searchid>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 ) and searchid>=$start AND searchid<=$end sql_query_range = SELECT MIN(searchid),MAX(searchid) FROM v9_search where searchid>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 ) } #定义一个index_search_main索引 index index_search_main { #设置索引的源 source = search_main #设置生成的索引存放路径 path = /usr/local/coreseek/var/data/index_search_main #定义文档信息的存储模式,extern表示文档信息和文档id分开存储 docinfo = extern #设置已缓存数据的内存锁定,为0表示不锁定 mlock = 0 #设置词形处理器列表,设置为none表示不使用任何词形处理器 morphology = none #定义最小索引词的长度 min_word_len = 1 #设置字符集编码类型,我这里采用的utf8编码和数据库的一致 charset_type = zh_cn.utf-8 #指定分词读取词典文件的位置 charset_dictpath = /usr/local/mmseg3/etc #不被搜索的词文件里表。 stopwords = /usr/local/coreseek/var/data/stopwords.txt #定义是否从输入全文数据中取出HTML标记 html_strip = 0 } #定义增量索引 index index_search_main_delta : index_search_main { source = search_main_delta path = /usr/local/coreseek/var/data/index_search_main_delta } #定义indexer配置选项 indexer { #定义生成索引过程使用索引的限制 mem_limit = 512M } #定义searchd守护进程的相关选项 searchd { #定义监听的IP和端口 #listen = 127.0.0.1 #listen = 172.16.88.100:3312 listen = 3312 listen = /var/run/searchd.sock #定义log的位置 log = /usr/local/coreseek/var/log/searchd.log #定义查询log的位置 query_log = /usr/local/coreseek/var/log/query.log #定义网络客户端请求的读超时时间 read_timeout = 5 #定义子进程的最大数量 max_children = 300 #设置searchd进程pid文件名 pid_file = /usr/local/coreseek/var/log/searchd.pid #定义守护进程在内存中为每个索引所保持并返回给客户端的匹配数目的最大值 max_matches = 100000 #启用无缝seamless轮转,防止searchd轮转在需要预取大量数据的索引时停止响应 #也就是说在任何时刻查询都可用,或者使用旧索引,或者使用新索引 seamless_rotate = 1 #配置在启动时强制重新打开所有索引文件 preopen_indexes = 1 #设置索引轮转成功以后删除以.old为扩展名的索引拷贝 unlink_old = 1 # MVA更新池大小,这个参数不太明白 mva_updates_pool = 1M #最大允许的包大小 max_packet_size = 32M #最大允许的过滤器数 max_filters = 256 #每个过滤器最大允许的值的个数 max_filter_values = 4096 }