kamikax/sphinxsearch

Laravel包,用于在Laravel 5中查询Sphinxsearch

此包的规范存储库似乎已不存在,因此该包已被冻结。

dev-master 2017-08-05 06:51 UTC

This package is not auto-updated.

Last update: 2024-01-21 00:30:59 UTC


README

简单的Laravel 5包,用于向Sphinx Search执行查询。受scalia/sphinxsearch包(用于Laravel 4)的启发。

创建此包是为了导入到packagist.org网站,并允许通过Composer进行安装(https://composer.php.ac.cn/)。

安装

在您的composer.json中要求此包

	"require": {
        /*** Some others packages ***/
		"kamikax/sphinxsearch": "dev-master",
	},

在控制台中运行composer update命令以拉取Sphinx Search的最新版本。

或者在控制台中直接运行

composer require kamikax/sphinxsearch:dev-master

更新composer后,将ServiceProvider添加到config/app.php中的"providers"数组中

	'providers' => array(
        /*** Some others providers ***/
        kamikax\SphinxSearch\SphinxSearchServiceProvider::class,
    ),

您可以将此行添加到可能使用SphinxSearch的文件中

use kamikax\SphinxSearch\SphinxSearch;

配置

要使用Sphinx Search,您需要配置您的索引以及它应该查询的模型。为此,将配置发布到您的应用中。

php artisan vendor:publish --provider=kamikax\SphinxSearch\SphinxSearchServiceProvider --force

这将在您的应用中创建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

许可

Sngrl Sphinx Search是开源软件,受MIT许可协议许可