Скриптование в конфигурации

Знали ли вы, что конфигурации Sphinx и Manticore Search позволяют вам использовать скриптование с помощью shebang синтаксиса ? Вот пример того, насколько это может быть полезным в некоторых случаях:

Представьте, что у вас есть 3 таблицы с идентичной структурой, которые вы хотите индексировать в 3 индекса по одному на каждую таблицу. Вы можете просто создать PHP-скрипт, который сделает это, и использовать его в качестве конфигурации Manticore Search вместо описания каждого источника/индекса по отдельности:

#!/usr/bin/php
<?php
$source= "source [TABLE]_src {
  type      = mysql
  sql_host    = localhost
  sql_user    = user
  sql_pass    = password
  sql_db      = db
  sql_port    = 3306
  sql_query = SELECT [TABLE].id, title, body FROM [TABLE] WHERE [TABLE].id >=\$startand[TABLE].ID <=\$end
  sql_query_range = SELECT MIN(id), MAX(id) FROM [TABLE]
  sql_range_step = 1000
}
";
$index= "index [TABLE]_idx {
  source      = [TABLE]_src
  path      = /path/to/indexes/idx_[TABLE]
}
";
$tables= array('Cats', 'Dogs', 'Mouses');
foreach($tables as $table) {
  echo str_replace('[TABLE]', $table, $source)."\n";
  echo str_replace('[TABLE]', $table, $index)."\n";
}
?>
searchd {
  listen          = localhost:9306:mysql41
  pid_file        = /path/to/pid_file.pid
}

Теперь вы можете использовать этот файл так же, как обычную конфигурацию Manticore Search:

[snikolaev@dev01 ~]$ searchd -c manticore.conf
Manticore 2.6.4 4510fa4@180501 dev
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2018, Manticore Software LTD (http://manticoresearch.com)

using config file 'manticore.conf'...

Установить Manticore Search

Установить Manticore Search