karelwintersky/arris.toolkit.sphinxql-foolz-wrapper

Arris µFramework SphinxQL Wrapper over Foolz Query Builder

0.99.0 2024-09-10 02:27 UTC

This package is auto-updated.

Last update: 2024-09-10 02:29:10 UTC


README

初始化

初始化静态接口到方法

rt_ReplaceIndex

通过数据集更新(替换)一个实时索引条目。

注意:数据集应包含索引中行的ID(实时索引中没有“自动递增”行的概念)

rt_ReplaceIndex(string $index_name, array $updateset)

/**
* Обновляет (REPLACE) реалтайм-индекс по набору данных
* с созданием коннекшена "сейчас"
*
* @param string $index_name
* @param array $updateset
* @return ResultSetInterface|null
*
* @throws DatabaseException
* @throws \Foolz\SphinxQL\Exception\ConnectionException
* @throws \Foolz\SphinxQL\Exception\SphinxQLException
*/

使用示例

$dataset = [
    'id'            =>  $id,
    'title'         =>  $item['title'],
    'short'         =>  $item['short'],
    'text'          =>  $item['text_bb'],

    'date_added'    =>  date_format( date_create_from_format('Y-m-d H:i:s', $item['cdate']), 'U' ),

    'type'          =>  1,
    'photo'         =>  empty($article['photo']['file']) ? 0 : 1,
    'author'        =>  $item['author'],

    // @todo: REQURED SphinxDynoConf :: MVA Attributes in RT_ARTICLES index
    'districts_all' =>  $item['districts_all'],
    'rubrics'       =>  array_keys($item['rubrics']),
    'districts'     =>  array_keys($item['districts'])
];
rt_ReplaceIndex('rt_articles', $dataset);

rt_DeleteIndex

从索引中删除一个条目

rt_DeleteIndex(string $index_name, string $field, $field_value = null)

/**
 * Удаляет строку реалтайм-индекса
 * с созданием коннекшена "сейчас"
 *
 * @param string $index_name        -- индекс
 * @param string $field             -- поле для поиска индекса
 * @param null $field_value         -- значение для поиска индекса
 * @return ResultSetInterface|null
 *
 * @throws DatabaseException
 * @throws \Foolz\SphinxQL\Exception\ConnectionException
 * @throws \Foolz\SphinxQL\Exception\SphinxQLException
 */

使用示例

rt_DeleteIndex('rt_articles', 'id', $id);

rt_RebuildAbstractIndex

逻辑上相当于rebuildAbstractIndexMVA方法,只是静态的,带有MV属性,并通过Foolz\SQL库

rt_RebuildAbstractIndex(\PDO $pdo_connection, string $sql_source_table, string $sphinx_index, Closure $make_updateset_method, string $condition = '')

 /**
 * @param \PDO $pdo_connection
 * @param string $sql_source_table
 * @param string $sphinx_index
 * @param Closure $make_updateset_method
 * @param string $condition
 * @return int
 * @throws DatabaseException
 * @throws \Foolz\SphinxQL\Exception\ConnectionException
 * @throws \Foolz\SphinxQL\Exception\SphinxQLException
 */

createInstance

创建SphinxQL实例(用于一次性更新)

Arris\Toolkit\SphinxToolkit::createInstance()->...