gpupo / search
PHP Sphinx faceted search over Official Sphinx searchd client (PHP API) with Oriented Object results based
Requires
- php: >=5.4
- gpupo/common: ~1.4
- psr/log: ~1.0
- zendframework/zend-filter: 2.*
- zendframework/zend-validator: 2.*
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpunit/phpunit: ~4.0
Suggests
- monolog/monolog: Write Log messages
This package is auto-updated.
Last update: 2019-02-20 20:01:01 UTC
README
Search
PHP Sphinx faceted search over Official Sphinx searchd client (PHP API) with Oriented Object results based
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.
composer require gpupo/search
Dev
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
Tests results
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
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
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
License
MIT, see LICENSE.
Links
- Search Composer Package on packagist.org
- What faceting means in Sphinx.
- Search Patterns - A Mapmaker’s Manifesto by Peter Moreville and Jeffrey Callender