gpupo/search

此包已被放弃,不再维护。未建议替代包。

基于官方 Sphinx searchd 客户端的 PHP Sphinx 分面搜索,结果基于面向对象

1.1.1 2015-08-05 20:46 UTC

This package is auto-updated.

Last update: 2019-02-20 20:01:01 UTC


README

Author MIT License Build Status Scrutinizer Code Quality

搜索

基于官方 Sphinx searchd 客户端的 PHP Sphinx 分面搜索,结果基于面向对象

简单查询用法


<?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

安装

推荐的安装方式是通过composer

composer require gpupo/search

开发

通过composer安装

composer install;

复制phpunit配置文件

cp phpunit.xml.dist phpunit.xml;

phpunit.xml中自定义 Sphinx 搜索服务器参数

<php>
	<const name="SPHINX_HOST" value="localhost"/>
 	<const name="SPHINX_PORT" value="9313"/>
 	<const name="SPHINX_TIMEOUT" value="5"/>
</php>

要本地运行测试套件

$ phpunit

或查看 testdox 输出

$ phpunit --testdox

测试结果

Gpupo\Tests\Search\FacetedSearch

  • 多查询
  • 分组
  • 简化多查询分组
  • 多查询和分组

Gpupo\Tests\Search\Paginator\Paginator

  • 结果具有用于分页的对象模型
  • 处理结果集合
  • 标记当前页
  • 操纵查询的偏移量
  • 操纵查询的限制
  • 根据限制将结果分成页面
  • 访问近似页面范围
  • 允许自定义页面范围以进行导航
  • 访问分页值

Gpupo\Tests\Search\Query\Filters

  • 根据键的值列表过滤
  • 根据键的值范围过滤
  • 向现有的值过滤器添加一个值

Gpupo\Tests\Search\Query\Keywords

  • 从字符串处理关键词
  • 使用有效关键词成功
  • 验证空或小于允许大小的关键词字符串
  • 使用短语搜索成功

Gpupo\Tests\Search\Query\Query

  • 将关键词模型化为对象
  • 从模型化查询进行搜索
  • 查询具有模型化和受控的属性
  • 接收结果限制的输入
  • 接收结果的偏移量输入
  • 验证结果偏移量输入
  • 验证结果限制输入
  • 允许在多个索引中进行搜索
  • 验证多个索引的输入
  • 具有模型化的过滤器
  • 接收过滤器输入
  • 验证过滤器输入
  • 支持基于一个属性的分面搜索
  • 支持基于多个属性的分面搜索
  • 避免属性重复计数

Gpupo\Tests\Search\Result\Collection

  • 具有处理属性的结果

Gpupo\Tests\Search

  • 包含对象模型的结果
  • 搜索简单关键词
  • 具有结果数量限制
  • 结果具有属性
  • 搜索多个关键词
  • 搜索关键词的部分
  • 搜索乱序关键词
  • 访问可用的结果数量
  • 访问每个关键词的可用的结果数量
  • 访问对象模型化的结果
  • 支持多查询

Gpupo\Tests\Search\Sphinx\SphinxService

  • 允许访问默认参数
  • 允许定义自定义参数
  • 提供客户端访问
  • 具有重置的单例客户端访问

待办事项

  • 将最初用巴西葡萄牙语编写的项目翻译为简体中文;
  • Travis 测试查找一个可用的 Sphinx Search 公共服务器(参见Stack Overflow 问题

更新 sphinxapi PHP

查看 Sphinxsearch 仓库 的公开只读镜像

当前稳定和经过测试的版本:2.1

更新命令

RELEASE='21';

lynx --dump --source https://sphinxsearch.googlecode.com/svn/branches/rel${RELEASE}/api/sphinxapi.php > src//Sphinx/sphinxapi.php

贡献者

许可协议

MIT,见 LICENSE 文件。

链接