aschmelyun / sphinxsearch
Laravel package of Sphinxsearch for Laravel ^5.4
Requires
- php: >=5.3.0
- gigablah/sphinxphp: 2.0.8
- illuminate/support: ^5.0|^6.0|^7.0|^8.0|^9.0
This package is auto-updated.
Last update: 2024-11-21 14:30:46 UTC
README
Simple Laravel 5.4 package for make queries to Sphinx Search.
Inspired by sngrl/sphinxsearch, and made it also usable in Laravel 5.4.
Installation
Run the following command in your console to pull down the package from packagist.
composer require cugr/sphinxsearch:dev-master
After updating composer, add the ServiceProvider to the "providers" array in config/app.php:
'providers' => [ /*** Some others providers ***/ CuGR\SphinxSearch\SphinxSearchServiceProvider::class, ],
You can add this line to the files, where you may use SphinxSearch:
use CuGR\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="CuGR\SphinxSearch\SphinxSearchServiceProvider"
This will create the file config/sphinxsearch.php
. Modify as needed.
Usage
Basic query (raw sphinx results)
$sphinx = new SphinxSearch(); // or $sphinx = new SphinxSearch('connection_name'); $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
CuGR Sphinx Search is open-sourced software licensed under the MIT license