dariusiii / sphinxsearch
此包已被废弃,不再维护。未建议替代包。
Laravel 5 查询 Sphinxsearch 的 Laravel 包
v1.0.5
2018-02-07 13:05 UTC
Requires
- php: >=7.1.0
- gigablah/sphinxphp: 2.0.*
- illuminate/support: 5.x
- roave/security-advisories: dev-master
README
一个简单的 Laravel 5 包,用于向 Sphinx Search 发送查询。灵感来源于 scalia/sphinxsearch Laravel 4 包。
此包创建的目的是导入到 packagist.org 网站,并允许通过 Composer 安装(https://getcomposer.org.cn/)。
安装
在您的 composer.json 中要求此包
"require": { /*** Some others packages ***/ "dariusiii/sphinxsearch": "^1.0", },
在控制台中运行 composer update
命令以获取 Sphinx Search 的最新版本。
或者在控制台中直接运行以下命令
composer require dariusiii/sphinxsearch
更新 composer 后,将 ServiceProvider 添加到 config/app.php 文件中的 "providers" 数组中
'providers' => array( /*** Some others providers ***/ dariusiii\SphinxSearch\SphinxSearchServiceProvider::class, ),
如果您使用的是 Laravel 5.5,则无需这样做,因为它会自动发现此包。
您可以将此行添加到您可能使用 SphinxSearch 的文件中
use dariusiii\SphinxSearch\SphinxSearch;
配置
要使用 Sphinx Search,您需要配置索引和它应该查询的模型。为此,请将配置发布到您的应用程序中。
php artisan vendor:publish
这将创建 config/sphinxsearch.php 文件。根据需要修改主机和端口,并配置索引,将它们绑定到一个表和 id 列。
return array ( 'host' => '127.0.0.1', 'port' => 9312, 'indexes' => array ( 'my_index_name' => array ( 'table' => 'my_keywords_table', 'column' => 'id' ), ) );
或者禁用模型查询,仅获取结果 id 列表。
return array ( 'host' => '127.0.0.1', 'port' => 9312, 'indexes' => array ( 'my_index_name' => FALSE, ) );
使用方法
基本查询(原始 Sphinx 结果)
$sphinx = new SphinxSearch(); $results = $sphinx->search('my query', 'index_name')->query();
基本查询(带有 Eloquent)
$results = $sphinx->search('my query', 'index_name')->get();
使用限制和过滤器查询另一个 Sphinx 索引。
$results = $sphinx->search('my query', 'index_name') ->limit(30) ->filter('attribute', array(1, 2)) ->range('int_attribute', 1, 10) ->get();
指定匹配和排序类型进行查询。
$result = $sphinx->search('my query', 'index_name') ->setFieldWeights( array( 'partno' => 10, 'name' => 8, 'details' => 1 ) ) ->setMatchMode(\Sphinx\SphinxClient::SPH_MATCH_EXTENDED) ->setSortMode(\Sphinx\SphinxClient::SPH_SORT_EXTENDED, "@weight DESC") ->get(true); //passing true causes get() to respect returned sort order
许可
DariusIII Sphinx Search 是开源软件,使用 MIT 许可证授权