PHP Sphinx faceted search over Official Sphinx searchd client (PHP API) with Oriented Object results based
<?php
use Gpupo\Search\Search;
use Gpupo\Search\Query\Keywords;
use Gpupo\Search\Query\Query;
$keywords = new Keywords;
$keywords->addKeyword('magic');
$keywords->addKeyword('unicorn');
$query = new Query($keywords);
$query->setIndex('fantasyIndex');
//Configure Sphinx Server Parameters:
SphinxService::getInstance()->setParameters(array(
'host' => 'foo.bar.com', //default value is localhost
));
$results = Search::getInstance()->findByQuery($query);
$results->getTotal(); // Itens found
The recommended way to install is through composer.
composer require gpupo/search
Install through composer:
composer install;
Copy phpunit
configuration file:
cp phpunit.xml.dist phpunit.xml;
Customize Sphinx Search Server parameters in phpunit.xml
:
<php>
<const name="SPHINX_HOST" value="localhost"/>
<const name="SPHINX_PORT" value="9313"/>
<const name="SPHINX_TIMEOUT" value="5"/>
</php>
To run localy the test suite:
$ phpunit
or see the testdox output
$ phpunit --testdox
Gpupo\Tests\Search\FacetedSearch
- Multi queries
- Group by
- Simplifica multiplas queries groupby
- Multiquery com groupby
Gpupo\Tests\Search\Paginator\Paginator
- Resultados possui objeto modelado para paginacao
- Processa result collection
- Marca a pagina atual
- Manipula offset de query
- Manipula limit de query
- Divide resultados em paginas de acordo com limite
- Acesso ao range de paginas aproximadas
- Permite customizacao do range de paginas para navegacao
- Acesso a valores da paginacao
Gpupo\Tests\Search\Query\Filters
- Filtra por lista de valores de uma chave
- Filtra por range de valores de uma chave
- Adiciona um valor a values filters existente
Gpupo\Tests\Search\Query\Keywords
- Processa palavras chave a partir de string
- Sucesso com palavras chaves validas
- Valida string de palavras chave vazias ou menor que o permitido
- Sucesso ao pesquisar com frases
Gpupo\Tests\Search\Query\Query
- Palavras chaves modeladas em objeto
- Pesquisa a partir de queries modeladas
- Queries possuem atributos modelados e controlados
- Recebe entrada de limites de resultados
- Recebe entrada de offset para resultados
- Valida entrada de offset para resultados
- Valida entrada de limites de resultados
- Permite pesquisa em multiplos indices
- Valida entrada para multiplos indices
- Possui filtros modelados
- Recebe entrada de filtros
- Valida entrada de filtros
- Suporte a busca facetada por um atributo
- Suporte a busca facetada por muitos atributos
- Evita contagem por atributos duplicada
Gpupo\Tests\Search\Result\Collection
- Resultados com propriedades processadas
Gpupo\Tests\Search
- Resultados contendo objetos modelados
- Pesquisa palavra chave simples
- Possui quantidade limite de resultados
- Resultados possuem atributos
- Pesquisa por multiplas palavras
- Pesquisa por parte de palavra
- Pesquisa com palavras fora de ordem
- Acesso a quantidade de resultados disponiveis
- Acesso a quantidade de resultados disponiveis por palavra
- Acesso a resultados em objetos modelados
- Suporte a multi queries
Gpupo\Tests\Search\Sphinx\SphinxService
- Permite acesso aos parametros default
- Permite definicao de parametros personalizados
- Disponibiliza acesso ao client
- Acesso singleton ao client com reset
- Translate items written originally in Brazilian portuguese;
- Finds a Sphinx Search public server for use in
Travis
tests (see the stackoverflow question)
See public read-only repository mirror for Sphinxsearch Repository
Current stable and tested Release: 2.1
Update command:
RELEASE='21';
lynx --dump --source https://sphinxsearch.googlecode.com/svn/branches/rel${RELEASE}/api/sphinxapi.php > src//Sphinx/sphinxapi.php
MIT, see LICENSE.
- Search Composer Package on packagist.org
- What faceting means in Sphinx.
- Search Patterns - A Mapmaker’s Manifesto by Peter Moreville and Jeffrey Callender