coreseek配置文件语法

sql_query_range
分区查询设置。可选选项,默认为空。仅适用于sql数据源(mysql,pgsql,mssql)
设置这个选项会启用文档的区段查询,分区段查询有助于避免在索引大量数据时发生myisam表臭名昭著的死锁问题。(同样有助于解决其他不那么声名狼藉的问题,比如大数据集上的性能下降问题,或者InnoDB对多个大型读事务(read transactions)进行序列化时消耗额外资源的问题)
此选项掻定的查询语句必须获取用于分区的最小和最大文档ID。它必须返回正好两个整数字段,先是最小ID然后是最大ID,字段的名字会被忽略。
当启用了分区段查询时,sql_query 要求包括 $start 和 $end 宏(因为重复多次索引整个表显示是个错误)。注意,$start 。。。 $end 所指定的区间不会重叠,因此不会在查询中删除ID正好等于 $start 或 $end 的文档。
事例
sql_query_range = select min(id),max(id) from documents
sql_range_step = 1000
sql_query = select * from documents where id>=$start and id<= $end

sql_attr_uint(32位无符号整型)
声明无符号整数。可声明同一类型的多个不同名称的属性
sql_attr_bool
声明布尔属性
sql_attr_bigint
64位整数属性声明。多个值(可以同时声明多个属性),可选选项。仅适用于sql。与sql_att_uint不同,这些值是有符号的
sql_attr_timestamp
声明unix时间戳属性
例如
sql_attr_timestamp = UNIX_TIMESTAMP(added_datetime) as added_ts

sql_query_post
后取查询。可选项,默认值为空。仅适用于sql数据
此查询在sql_query 成功执行后立即执行。如果取后取查询产生了错误,该错误被当作警告被报告,但索引不会因此终止。取后查询的结果会被忽略。注意当取后查询执行时索引还尚未完成,而后面的索引仍然可能失败。因此在这个查询中不应进行任何永久性的更新。例如,不应在此查询中更新辅助表中存储的最近成功索引的文档ID值
示例
sql_query_post = DROP TABLE my_tmp_table

sql_query_post_index
后索引查询。可选项,默认值为空。仅适用于sql数据源
此查询在索引完全成功结束后执行。如果此查询产生错误,该错误会被当作警告报告,但索引不会因此而终止,该查询的结果集被忽略。此查询中可以使用宏 $maxid,它会被扩展为索引过程中实际得到的最大的文档ID
示例
sql_query_post_index = REPLACE INTO counters(id,val) values ('max_indexed_id',$maxid)

sql_ranged_throttle
分区查询的间隔时间(throttling),单位是毫秒。可选选项,默认值为0(无间隔时间)。仅适用于sql数据源
此选项旨在避免indexer对数据库服务器构成太大的负担。它会使indexer在每个分区查询的步之后休眠若干毫秒。休眠无条件执行,并在取结果的查询之前执行
示例
sql_ranged_throttle = 1000 #sleep for 1 sec before each query step

sql_query_info
文档信息查询。可选选项,默认为空
仅被命令行搜索所用,用来获取和显示文档信息
示例
sql_query_info = select * from documents where id=$id

你可能感兴趣的:(coreseek)