PHP code example of ripaclub / zf2-sphinxsearch-tool
1. Go to this page and download the library: Download ripaclub/zf2-sphinxsearch-tool library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ripaclub / zf2-sphinxsearch-tool example snippets
return [
'sphinxsearch' => [
'variables' => [
'idx_path' => '/path/to/idx'
],
'searchd' => [
'listen' => '9306:mysql41',
'log' => '{log_path}/searchd.log',
'query_log' => '{log_path}/query.log',
'pid_file' => '{run_path}/searchd.pid',
'workers' => 'threads',
'binlog_path' => '{lib_path}',
'sphinxql_state' => '{run_path}/state.sql',
],
'indexer' => [
'mem_limit' => '512M',
'write_buffer' => '16M',
],
'indexes' => [
'realtime' => [
'type' => 'rt',
'path' => '{idx_path}/realtime',
'rt_field' => ['title', 'content'],
'rt_attr_uint' => 'gid',
],
'main' => [
'source' => 'main',
'path' => '{idx_path}/main',
],
'delta : main' => [
'source' => 'delta',
'path' => '{idx_path}/delta',
]
],
'sources' => [
'main' => [
'sql_query_pre' => ['SET NAMES utf8', 'REPLACE INTO sph_counter SELECT 1, MAX(id) FROM documents'],
'sql_query' => 'SELECT id, title, body FROM documents WHERE id<=(SELECT max_doc_id FROM sph_counter WHERE counter_id=1)',
],
'delta : main' => [
'sql_query_pre' => 'SET NAMES utf8',
'sql_query' => 'SELECT id, title, body FROM documents WHERE id>(SELECT max_doc_id FROM sph_counter WHERE counter_id=1)',
]
]
]
];
use SphinxSearch\Tool\Source\Writer\XML2;
...
$writer = new XML2();
$writer->setFields(
[
['name' => 'name', 'attr' => 'string'],
['name' => 'type'],
]
);
$writer->setAttributes(
[
['name' => 'lat', 'type' => 'float'],
['name' => 'lng', 'type' => 'float'],
['name' => 'price', 'type' => 'int'],
]
);
echo $writer->beginOutput();
$count = 1;
foreach ($results as $result) {
$document = [
'id' => $count,
'name' => $result['name'],
'lat' => deg2rad(floatval($result['lat'])),
'lng' => deg2rad(floatval($result['lng'])),
'price' => (int) $result['price'],
];
echo $writer->addDocument($document);
$count++;
}
echo $writer->endOutput();
...
return [
'sphinxsearch' => [
'indexes' => [
'my_idx' => [
'type' => 'plain',
'path' => '{idx_path}restaurant_it',
'source' => 'my_source',
'dict' => 'keywords',
'charset_type' => 'utf-8',
'charset_table' => '{charset_utf8_default}',
],
],
'sources' => [
'my_source' => [
'type' => 'xmlpipe2',
'xmlpipe_command' => '/usr/bin/php -f /path/to/project/public/index.php sphinx xmlpipe2'
]
]
]
];
bash
php -f sphinx-tool.php sphinx print config --output=config/sphinx.dev.conf
php -f sphinx-tool.php sphinx print config --input=sphinx.conf.php --output=config/sphinx.dev.conf
bash
./vendor/bin/sphinx-tool.php sphinx print config --input=sphinx.config.php --output=sphinx.conf