#!/usr/bin/php U+E1, U+C4->U+E4, U+C5->U+E5, U+C6->U+E6, U+C9->U+E9, U+CD->U+ED, U+D3->U+F3, U+D6->U+F6, U+D8->U+F8, \ U+DA->U+FA, U+DC->U+FC, U+0150->U+0151, U+0152->U+0153, U+0170->U+0171, U+01E2->U+E6, U+01E3->U+E6, U+01FC->U+E6, \ U+01FD->U+E6, U+1D01->U+E6, U+1D02->U+E6, U+1D2D->U+E6, U+1D46->U+E6, \ U+DF, U+E1, U+E4, U+E5, U+E6, U+E9, U+ED, U+00F3, U+F6, U+F8, U+FA, U+FC, U+0151, U+0153, U+0171\n"); define('SELECT_FIELDS', 'id, `from` as sender, `to` as rcpt, `fromdomain` as senderdomain, `todomain` as rcptdomain, `subject`, `arrived`, `sent`, `body`, `size`, `direction`, `folder`, `attachments`, `attachment_types`'); define('RT', 0); ?> # # minimal manticore configuration suited to piler # source base { type = mysql sql_host = MYSQL_HOSTNAME sql_db = MYSQL_DATABASE sql_user = MYSQL_USERNAME sql_pass = MYSQL_PASSWORD sql_attr_uint = size sql_attr_uint = sent sql_attr_uint = attachments } source delta : base { sql_query_pre = SET NAMES utf8mb4 sql_query_pre = REPLACE INTO sph_counter SELECT 1, IFNULL(MAX(id), 0) FROM sph_index sql_query_post_index = DELETE FROM sph_index WHERE id<=(SELECT max_doc_id FROM sph_counter WHERE counter_id=1) sql_query = SELECT FROM sph_index WHERE id <= (SELECT max_doc_id FROM sph_counter WHERE counter_id=1) sql_query_killlist = SELECT `id` FROM `metadata` WHERE `deleted`=1 } source main1 : base { sql_query_pre = SET NAMES utf8mb4 sql_query = SELECT FROM sph_index WHERE id=-1 } source main2 : base { sql_query_pre = SET NAMES utf8mb4 sql_query = SELECT FROM sph_index WHERE id=-1 } source main3 : base { sql_query_pre = SET NAMES utf8mb4 sql_query = SELECT FROM sph_index WHERE id=-1 } source main4 : base { sql_query_pre = SET NAMES utf8mb4 sql_query = SELECT FROM sph_index WHERE id=-1 } source dailydelta : base { sql_query_pre = SET NAMES utf8mb4 sql_query = SELECT FROM sph_index WHERE id=-1 } index main1 { source = main1 path = /piler/manticore/main1 min_prefix_len = 5 min_word_len = 1 stored_fields = charset_table = } index main2 { source = main2 path = /piler/manticore/main2 min_prefix_len = 5 min_word_len = 1 stored_fields = charset_table = } index main3 { source = main3 path = /piler/manticore/main3 min_prefix_len = 5 min_word_len = 1 stored_fields = charset_table = } index main4 { source = main4 path = /piler/manticore/main4 min_prefix_len = 5 min_word_len = 1 stored_fields = charset_table = } index dailydelta1 { source = dailydelta path = /piler/manticore/dailydelta1 min_prefix_len = 5 min_word_len = 1 stored_fields = charset_table = killlist_target = main1:kl, main2:kl, main3:kl, main4:kl, dailydelta1:kl } index delta1 { source = delta path = /piler/manticore/delta1 min_prefix_len = 5 min_word_len = 1 stored_fields = charset_table = } source tag : base { sql_query_pre = SET NAMES utf8mb4 sql_query = SELECT `_id`, `id` AS iid, `uid`, `tag` FROM `tag` sql_attr_uint = iid sql_attr_uint = uid } source note : base { sql_query_pre = SET NAMES utf8mb4 sql_query = SELECT `_id`, `id` AS iid, `uid`, `note` FROM `note` sql_attr_uint = iid sql_attr_uint = uid } index tag1 { source = tag path = /piler/manticore/tag1 min_prefix_len = 5 min_word_len = 1 charset_table = stored_fields = } index note1 { source = note path = /piler/manticore/note1 min_prefix_len = 5 min_word_len = 1 charset_table = stored_fields = } index piler1 { type = rt path = /var/piler/manticore/piler1 rt_mem_limit = 512M stored_fields = min_word_len = 1 min_prefix_len = 5 charset_table = # See https://manual.manticoresearch.com/Creating_an_index/Data_types#Row-wise-and-columnar-attribute-storages # if you want to enable columnar storage # columnar_attrs = * rt_field = sender rt_field = rcpt rt_field = senderdomain rt_field = rcptdomain rt_field = subject rt_field = body rt_field = attachment_types rt_attr_bigint = arrived rt_attr_bigint = sent rt_attr_uint = size rt_attr_uint = direction rt_attr_uint = folder rt_attr_uint = attachments } index tag1 { type = rt path = /var/piler/manticore/tag1 rt_mem_limit = 16M stored_fields = tag min_word_len = 2 min_prefix_len = 5 charset_table = rt_field = tag rt_attr_bigint = mid rt_attr_uint = uid } index note1 { type = rt path = /var/piler/manticore/note1 rt_mem_limit = 16M stored_fields = note min_word_len = 2 min_prefix_len = 5 charset_table = rt_field = note rt_attr_bigint = mid rt_attr_uint = uid } searchd { listen = 127.0.0.1:9312 listen = 127.0.0.1:9306:mysql listen = 127.0.0.1:9307:mysql_readonly log = /var/piler/manticore/manticore.log binlog_max_log_size = 256M binlog_path = /var/piler/manticore binlog_flush = 2 query_log = /var/piler/manticore/query.log network_timeout = 5 pid_file = /var/run/piler/searchd.pid seamless_rotate = 1 preopen_tables = 1 unlink_old = 1 thread_stack = 512k rt_flush_period = 300 }