PHPackages                             motorway/searchengine - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Search &amp; Filtering](/categories/search)
4. /
5. motorway/searchengine

ActiveLibrary[Search &amp; Filtering](/categories/search)

motorway/searchengine
=====================

07PHP

Since Aug 28Pushed 9y agoCompare

[ Source](https://github.com/motorway/SearchEngine)[ Packagist](https://packagist.org/packages/motorway/searchengine)[ RSS](/packages/motorway-searchengine/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

SearchEngine
============

[](#searchengine)

Модуль предоставляет единый интерфейс для работы с разлными поисковыми машинами из под 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, который позволяет добавлять/изменять/удалять данный из индекса. Пользовательский код необходимо будет доработать таким образом, чтобы в момент изменения данных были вызваны соответсвующие методы 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();
}
```

###  Health Score

19

—

LowBetter than 9% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/31774565?v=4)[Motorway](/maintainers/motorway)[@motorway](https://github.com/motorway)

---

Top Contributors

[![KozlovAI](https://avatars.githubusercontent.com/u/20911931?v=4)](https://github.com/KozlovAI "KozlovAI (44 commits)")

### Embed Badge

![Health badge](/badges/motorway-searchengine/health.svg)

```
[![Health](https://phpackages.com/badges/motorway-searchengine/health.svg)](https://phpackages.com/packages/motorway-searchengine)
```

###  Alternatives

[awesome-nova/dependent-filter

Dependent filters for Laravel Nova

26190.2k](/packages/awesome-nova-dependent-filter)[algolia/php-dom-parser

A simple tool to turn DOM into Algolia search friendly record objects.

181.8k](/packages/algolia-php-dom-parser)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
