mirror of
				https://bitbucket.org/jsuto/piler.git
				synced 2025-10-31 22:52:26 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			284 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			284 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| #!/usr/bin/php
 | |
| <?php
 | |
| 
 | |
| define('SPHINX_VERSION', 331); // If you have sphinx-3.3.1, then set SPHINX_VERSION to 331
 | |
| define('LOCALSTATEDIR', '@LOCALSTATEDIR@');
 | |
| define('NGRAM_CONFIG', "        #ngram_len               = 1\n        #ngram_chars             = U+3000..U+2FA1F\n");
 | |
| 
 | |
| # See http://sphinxsearch.com/wiki/doku.php?id=charset_tables for more on the charset_table settings
 | |
| # The following settings contains English and some Latin extras
 | |
| define('SPHINX_CHARSET_TABLE', "0..9, english, _, \
 | |
|                                   U+C1->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");
 | |
| 
 | |
| // Sphinx 3.3.1 introduced some strict rules for fulltext search column names
 | |
| // In order to comply with it you must enable SPHINX_STRICT_SCHEMA variable
 | |
| // Be sure to check out http://www.mailpiler.org/wiki/current:sphinx3 for more
 | |
| // NB: The SPHINX_STRICT_SCHEMA in sphinx.conf MUST BE THE SAME as in config.php (or in config-site.php)
 | |
| //
 | |
| define('SPHINX_STRICT_SCHEMA', 1);
 | |
| define('RT', 0);
 | |
| 
 | |
| if(SPHINX_STRICT_SCHEMA) {
 | |
|    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`');
 | |
| } else {
 | |
|    define('SELECT_FIELDS', 'id, `from`, `to`, `fromdomain`, `todomain`, `subject`, `arrived`, `sent`, `body`, `size`, `direction`, `folder`, `attachments`, `attachment_types`');
 | |
| }
 | |
| 
 | |
| ?>
 | |
| 
 | |
| #
 | |
| # minimal sphinx 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
 | |
| }
 | |
| 
 | |
| <?php if(!RT) { ?>
 | |
| 
 | |
| 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 <?php print SELECT_FIELDS; ?> FROM sph_index WHERE id <= (SELECT max_doc_id FROM sph_counter WHERE counter_id=1)
 | |
| 
 | |
| <?php if(SPHINX_VERSION < 300) { ?>
 | |
|    sql_query_killlist = SELECT `id` FROM `metadata` WHERE `deleted`=1
 | |
| <?php } else { ?>
 | |
|    sql_query_kbatch = SELECT `id` FROM `metadata` WHERE `deleted`=1
 | |
| <?php } ?>
 | |
| }
 | |
| 
 | |
| source main1 : base
 | |
| {
 | |
|    sql_query_pre = SET NAMES utf8mb4
 | |
|    sql_query = SELECT <?php print SELECT_FIELDS; ?> FROM sph_index WHERE id=-1
 | |
| }
 | |
| 
 | |
| source main2 : base
 | |
| {
 | |
|    sql_query_pre = SET NAMES utf8mb4
 | |
|    sql_query = SELECT <?php print SELECT_FIELDS; ?> FROM sph_index WHERE id=-1
 | |
| }
 | |
| 
 | |
| source main3 : base
 | |
| {
 | |
|    sql_query_pre = SET NAMES utf8mb4
 | |
|    sql_query = SELECT <?php print SELECT_FIELDS; ?> FROM sph_index WHERE id=-1
 | |
| }
 | |
| 
 | |
| source main4 : base
 | |
| {
 | |
|    sql_query_pre = SET NAMES utf8mb4
 | |
|    sql_query = SELECT <?php print SELECT_FIELDS; ?> FROM sph_index WHERE id=-1
 | |
| }
 | |
| 
 | |
| source dailydelta : base
 | |
| {
 | |
|    sql_query_pre = SET NAMES utf8mb4
 | |
|    sql_query = SELECT <?php print SELECT_FIELDS; ?> FROM sph_index WHERE id=-1
 | |
| }
 | |
| <?php } ?>
 | |
| 
 | |
| 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
 | |
| 
 | |
| }
 | |
| 
 | |
| <?php if(!RT) { ?>
 | |
| index main1
 | |
| {
 | |
|         source                  = main1
 | |
|         path                    = <?php print LOCALSTATEDIR; ?>/piler/sphinx/main1
 | |
| <?php if(SPHINX_VERSION < 300) { ?>
 | |
|         docinfo                 = extern
 | |
|         dict                    = keywords
 | |
| <?php } ?>
 | |
|         min_prefix_len          = 5
 | |
|         min_word_len            = 1
 | |
|         charset_table           = <?php print SPHINX_CHARSET_TABLE; ?>
 | |
| <?php print NGRAM_CONFIG; ?>
 | |
| }
 | |
| 
 | |
| index main2
 | |
| {
 | |
|         source                  = main2
 | |
|         path                    = <?php print LOCALSTATEDIR; ?>/piler/sphinx/main2
 | |
| <?php if(SPHINX_VERSION < 300) { ?>
 | |
|         docinfo                 = extern
 | |
|         dict                    = keywords
 | |
| <?php } ?>
 | |
|         min_prefix_len          = 5
 | |
|         min_word_len            = 1
 | |
|         charset_table           = <?php print SPHINX_CHARSET_TABLE; ?>
 | |
| <?php print NGRAM_CONFIG; ?>
 | |
| }
 | |
| 
 | |
| index main3
 | |
| {
 | |
|         source                  = main3
 | |
|         path                    = <?php print LOCALSTATEDIR; ?>/piler/sphinx/main3
 | |
| <?php if(SPHINX_VERSION < 300) { ?>
 | |
|         docinfo                 = extern
 | |
|         dict                    = keywords
 | |
| <?php } ?>
 | |
|         min_prefix_len          = 5
 | |
|         min_word_len            = 1
 | |
|         charset_table           = <?php print SPHINX_CHARSET_TABLE; ?>
 | |
| <?php print NGRAM_CONFIG; ?>
 | |
| }
 | |
| 
 | |
| index main4
 | |
| {
 | |
|         source                  = main4
 | |
|         path                    = <?php print LOCALSTATEDIR; ?>/piler/sphinx/main4
 | |
| <?php if(SPHINX_VERSION < 300) { ?>
 | |
|         docinfo                 = extern
 | |
|         dict                    = keywords
 | |
| <?php } ?>
 | |
|         min_prefix_len          = 5
 | |
|         min_word_len            = 1
 | |
|         charset_table           = <?php print SPHINX_CHARSET_TABLE; ?>
 | |
| <?php print NGRAM_CONFIG; ?>
 | |
| }
 | |
| 
 | |
| index dailydelta1
 | |
| {
 | |
|         source                  = dailydelta
 | |
|         path                    = <?php print LOCALSTATEDIR; ?>/piler/sphinx/dailydelta1
 | |
| <?php if(SPHINX_VERSION < 300) { ?>
 | |
|         docinfo                 = extern
 | |
|         dict                    = keywords
 | |
| <?php } ?>
 | |
|         min_prefix_len          = 5
 | |
|         min_word_len            = 1
 | |
|         charset_table           = <?php print SPHINX_CHARSET_TABLE; ?>
 | |
| <?php print NGRAM_CONFIG; ?>
 | |
| }
 | |
| 
 | |
| index delta1
 | |
| {
 | |
|         source                  = delta
 | |
|         path                    = <?php print LOCALSTATEDIR; ?>/piler/sphinx/delta1
 | |
| <?php if(SPHINX_VERSION < 300) { ?>
 | |
|         docinfo                 = extern
 | |
|         dict                    = keywords
 | |
| <?php } ?>
 | |
|         min_prefix_len          = 5
 | |
|         min_word_len            = 1
 | |
|         charset_table           = <?php print SPHINX_CHARSET_TABLE; ?>
 | |
| <?php print NGRAM_CONFIG; ?>
 | |
| <?php if(SPHINX_VERSION >= 310) { ?>
 | |
|         kbatch = main1, main2, main3, main4, dailydelta1
 | |
| <?php } ?>
 | |
| }
 | |
| 
 | |
| <?php } ?>
 | |
| 
 | |
| index tag1
 | |
| {
 | |
|         source                  = tag
 | |
|         path                    = <?php print LOCALSTATEDIR; ?>/piler/sphinx/tag1
 | |
| <?php if(SPHINX_VERSION < 300) { ?>
 | |
|         docinfo                 = extern
 | |
|         dict                    = keywords
 | |
| <?php } ?>
 | |
|         min_prefix_len          = 5
 | |
|         min_word_len            = 1
 | |
|         charset_table           = <?php print SPHINX_CHARSET_TABLE; ?>
 | |
| <?php print NGRAM_CONFIG; ?>
 | |
| }
 | |
| 
 | |
| 
 | |
| index note1
 | |
| {
 | |
|         source                  = note
 | |
|         path                    = <?php print LOCALSTATEDIR; ?>/piler/sphinx/note1
 | |
| <?php if(SPHINX_VERSION < 300) { ?>
 | |
|         docinfo                 = extern
 | |
|         dict                    = keywords
 | |
| <?php } ?>
 | |
|         min_prefix_len          = 5
 | |
|         min_word_len            = 1
 | |
|         charset_table           = <?php print SPHINX_CHARSET_TABLE; ?>
 | |
| <?php print NGRAM_CONFIG; ?>
 | |
| }
 | |
| 
 | |
| <?php if(RT) { ?>
 | |
| index piler1
 | |
| {
 | |
|         type = rt
 | |
|         path = /var/piler/sphinx/piler1
 | |
|         rt_mem_limit = 128M
 | |
|         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
 | |
| }
 | |
| <?php } ?>
 | |
| 
 | |
| indexer
 | |
| {
 | |
|         mem_limit               = 256M
 | |
| }
 | |
| 
 | |
| 
 | |
| searchd
 | |
| {
 | |
|         listen                  = 127.0.0.1:9312
 | |
|         listen                  = 127.0.0.1:9306:mysql41
 | |
|         log                     = /dev/null
 | |
|         binlog_path             = /var/piler/sphinx
 | |
|         binlog_max_log_size     = 16M
 | |
|         binlog_flush            = 2
 | |
| <?php if(RT) { ?>
 | |
|         rt_flush_period         = 300
 | |
| <?php } ?>
 | |
|         ##query_log             =
 | |
|         read_timeout            = 5
 | |
|         max_children            = 30
 | |
|         pid_file                = /var/run/piler/searchd.pid
 | |
|         seamless_rotate         = 1
 | |
|         preopen_indexes         = 1
 | |
|         unlink_old              = 1
 | |
|         thread_stack            = 512k
 | |
|         workers                 = thread_pool
 | |
| }
 |