, (*1)
Search
PHP Sphinx faceted search over Official Sphinx searchd client (PHP API) with Oriented Object results based, (*2)
Simple Query Usage
<?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
Install
The recommended way to install is through composer., (*3)
composer require gpupo/search
Dev
Install through composer:, (*4)
composer install;
Copy phpunit
configuration file:, (*5)
cp phpunit.xml.dist phpunit.xml;
Customize Sphinx Search Server parameters in phpunit.xml
:, (*6)
<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:, (*7)
$ phpunit
or see the testdox output, (*8)
$ phpunit --testdox
Tests results
Gpupo\Tests\Search\FacetedSearch, (*9)
- [x] Multi queries
- [x] Group by
- [x] Simplifica multiplas queries groupby
- [x] Multiquery com groupby
Gpupo\Tests\Search\Paginator\Paginator, (*10)
- [x] Resultados possui objeto modelado para paginacao
- [x] Processa result collection
- [x] Marca a pagina atual
- [x] Manipula offset de query
- [x] Manipula limit de query
- [x] Divide resultados em paginas de acordo com limite
- [x] Acesso ao range de paginas aproximadas
- [x] Permite customizacao do range de paginas para navegacao
- [x] Acesso a valores da paginacao
Gpupo\Tests\Search\Query\Filters, (*11)
- [x] Filtra por lista de valores de uma chave
- [x] Filtra por range de valores de uma chave
- [x] Adiciona um valor a values filters existente
Gpupo\Tests\Search\Query\Keywords, (*12)
- [x] Processa palavras chave a partir de string
- [x] Sucesso com palavras chaves validas
- [x] Valida string de palavras chave vazias ou menor que o permitido
- [x] Sucesso ao pesquisar com frases
Gpupo\Tests\Search\Query\Query, (*13)
- [x] Palavras chaves modeladas em objeto
- [x] Pesquisa a partir de queries modeladas
- [x] Queries possuem atributos modelados e controlados
- [x] Recebe entrada de limites de resultados
- [x] Recebe entrada de offset para resultados
- [x] Valida entrada de offset para resultados
- [x] Valida entrada de limites de resultados
- [x] Permite pesquisa em multiplos indices
- [x] Valida entrada para multiplos indices
- [x] Possui filtros modelados
- [x] Recebe entrada de filtros
- [x] Valida entrada de filtros
- [x] Suporte a busca facetada por um atributo
- [x] Suporte a busca facetada por muitos atributos
- [x] Evita contagem por atributos duplicada
Gpupo\Tests\Search\Result\Collection, (*14)
- [x] Resultados com propriedades processadas
Gpupo\Tests\Search, (*15)
- [x] Resultados contendo objetos modelados
- [x] Pesquisa palavra chave simples
- [x] Possui quantidade limite de resultados
- [x] Resultados possuem atributos
- [x] Pesquisa por multiplas palavras
- [x] Pesquisa por parte de palavra
- [x] Pesquisa com palavras fora de ordem
- [x] Acesso a quantidade de resultados disponiveis
- [x] Acesso a quantidade de resultados disponiveis por palavra
- [x] Acesso a resultados em objetos modelados
- [x] Suporte a multi queries
Gpupo\Tests\Search\Sphinx\SphinxService, (*16)
- [x] Permite acesso aos parametros default
- [x] Permite definicao de parametros personalizados
- [x] Disponibiliza acesso ao client
- [x] Acesso singleton ao client com reset
Todo
- [ ] Translate items written originally in Brazilian portuguese;
- [ ] Finds a Sphinx Search public server for use in
Travis
tests (see the stackoverflow question)
Update sphinxapi PHP
See public read-only repository mirror for Sphinxsearch Repository, (*17)
Current stable and tested Release: 2.1, (*18)
Update command:, (*19)
RELEASE='21';
lynx --dump --source https://sphinxsearch.googlecode.com/svn/branches/rel${RELEASE}/api/sphinxapi.php > src//Sphinx/sphinxapi.php
Contributors, (*20)
License
MIT, see LICENSE., (*21)
Links