sphinxsearch

Sphinx Search for Laravel 5

  • Owner: sngrl/sphinxsearch
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Sphinx Search for Laravel 5 - Custom build with snippets support

Simple Laravel 5 package for make queries to Sphinx Search.
Inspired by scalia/sphinxsearch package for Laravel 4.

This package was created to import to the site packagist.org and allow installation through Composer (https://getcomposer.org/).

Installation

Require this package in your composer.json:

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

Run in your console composer update command to pull down the latest version of Sphinx Search.

Or just run this in console:

composer require sngrl/sphinxsearch:dev-master

After updating composer, add the ServiceProvider to the "providers" array in config/app.php:

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

You can add this line to the files, where you may use SphinxSearch:

use sngrl\SphinxSearch\SphinxSearch;

Configuration

To use Sphinx Search, you need to configure your indexes and what model it should query. To do so, publish the configuration into your app.

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

This will create the file config/sphinxsearch.php. Modify as needed the host and port, and configure the indexes, binding them to a table and id column.

return array (
	'host'    => '127.0.0.1',
	'port'    => 9312,
	'indexes' => array (
		'my_index_name' => array ( 'table' => 'my_keywords_table', 'column' => 'id' ),
	)
);

Or disable the model querying to just get a list of result id's.

return array (
	'host'    => '127.0.0.1',
	'port'    => 9312,
	'indexes' => array (
		'my_index_name' => FALSE,
	)
);

Usage

Basic query (raw sphinx results)

$sphinx = new SphinxSearch();
$results = $sphinx->search('my query', 'index_name')->query();

Basic query (with Eloquent)

$results = $sphinx->search('my query', 'index_name')->get();

Query another Sphinx index with limit and filters.

$results = $sphinx->search('my query', 'index_name')
	->limit(30)
	->filter('attribute', array(1, 2))
	->range('int_attribute', 1, 10)
	->get();

Query with match and sort type specified.

$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

License

Sngrl Sphinx Search is open-sourced software licensed under the MIT license

Main metrics

Overview
Name With Ownersngrl/sphinxsearch
Primary LanguagePHP
Program languagePHP (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2015-07-02 13:43:15
Pushed At2024-03-12 16:56:32
Last Commit At2017-11-03 10:09:56
Release Count0
用户参与
Stargazers Count123
Watchers Count7
Fork Count90
Commits Count44
Has Issues Enabled
Issues Count29
Issue Open Count16
Pull Requests Count7
Pull Requests Open Count6
Pull Requests Close Count5
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private