- PVSM.RU - https://www.pvsm.ru -
Одна из самых важных задач стоящих при разработке сайта, это реализация полнотекстового поиска. Один из популярных и простых вариантов реализации, это использование Sphinx. На хабре уже есть посвящённые ему статьи, но не заслуженно не упомянута библиотека Query Builder. Это я и постараюсь исправить.
Одна из самых важных задач стоящих при разработке сайта, это реализация полнотекстового поиска. Один из популярных и простых вариантов реализации, это использование Sphinx. На хабре уже есть посвящённые ему статьи, но не заслуженно не упомянута библиотека Query Builder. Это я и постараюсь исправить.
Данный текст является вольным переводом статьи «SphinxQL Query Builder for PHP» [1].
Если вы используете Composer, то вы можете установить его следующей командой:
$ composer install foolz/sphinxql-query-builder --save
Или клонировать [2] его из гитхаб репозитория.
Пример без использования Query Builder:
<?php
$conn = new mysqli('localhost', null, null, null, 9306);
if ($conn->connect_error) {
throw new Exception('Connection Error: ['.$conn->connect_errno.'] '.$conn->connect_error, $conn->connect_errno);
}
$resource = $conn->query('SELECT * FROM anime_index WHERE MATCH('@character Asuka') AND age BETWEEN 12 AND 19');
$results = array();
while ($row = $resource->fetch_assoc()) {
$results[] = $row;
}
$resource->free_result();
// Теперь, можно вывести массив с полученными результатами
var_dump($results);
А вот и кусок кода с использованием Query Builder:
<?php
use FoolzSphinxQLConnection;
use FoolzSphinxQLSphinxQL;
$conn = new Connection();
$conn->setParams(array('host' => 'localhost', 'port' => 9306));
$query = SphinxQL::create($conn)
->select('*')
->from('anime_index')
->match('character', 'Asuka');
// В отличии от предыдущего примера, вы с лёгкостью сможете изменить запрос
$query->where('age', 'between', array(12, 19));
// Массив с полученными результатами
$result = $query->execute();
Не правда ли гораздо нагляднее и проще?
Хоть мы и можем писать запросы используя MySQLi, но Query Builder позволяет писать более понятные и легко поддерживаемые запросы. Я думаю пример указанный выше очень наглядно это показывает. Больше примеров и документация по использованию библиотеки, вы можете найти на гитхабе [2].
Автор: DonRai
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/sphinx/73261
Ссылки в тексте:
[1] «SphinxQL Query Builder for PHP»: http://sphinxsearch.com/blog/2014/10/20/sphinxql-query-builder-for-php/
[2] клонировать: https://github.com/FoolCode/SphinxQL-Query-Builder
[3] Источник: http://habrahabr.ru/post/242077/
Нажмите здесь для печати.