motorway/searchengine

dev-master 2016-08-28 12:29 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:26:11 UTC


README

该模块提供了一个统一的接口,用于在PHP中操作各种搜索引擎。目前仅实现了访问Sphinx搜索引擎的接口。

安装

通过composer进行安装

$ composer require motorway/searchengine

使用

初始化

// инициализация с конфигом по указанному пути
$usersSearch = \Motorway\SearchEngine\Index::getInstance('users', '/path/to/users-config.php');

// Если вторым параметром не передать путь до файла конфигурации он (файл конфига) будет искаться по дефолтному пути
// будет загружен конфиг по адресу /vendor/motorway/searchengine/config/users.php
$usersSearch = \Motorway\SearchEngine\Index::getInstance('users');

// Для переопределения дефолтного пути конфигов используйте
\Motorway\SearchEngine\Index::configSavePath('/new/path/to/configs/');
// будет загружен конфиг по адресу /new/path/to/configs/users.php
$usersSearch = \Motorway\SearchEngine\Index::getInstance('users');

ORM

为了与搜索索引交互,定义了一个统一的ORM接口,允许添加/修改/删除索引中的数据。需要修改用户代码,以确保在数据变更时调用相应的ORM方法。

// например добавление/изменение данных
function createOrUpdateUser($data)
{
	// ... save user data code

	$entity = \Motorway\SearchEngine\Index::getInstance('users')->orm()->entity();
	$entity->id = $userId;
	$entity->fieldOne = 'aaa';
	$entity->fieldTwo = 'aaa';
	$entity->save();
}

function deleteUser($userId)
{
	// ... delete user code
	
	$entity = \Motorway\SearchEngine\Index::getInstance('users')->orm()->entity();
	$entity->id = $userId;
	$entity->delete();
}