liugj / lumen-xunsearch
Xunsearch 驱动器,用于 Laravel Scout。
v1.2.9
2018-06-07 11:56 UTC
Requires
- php: >=5.6.4
- laravel/scout: ~3
README
Xunsearch 引擎,用于 Laravel Scout。
安装
您可以通过 composer 安装此软件包
composer require liugj/lumen-xunsearch
您必须在 bootstrap/app.php
的第 80 行配置中添加 Scout 服务提供者和软件包服务提供者
$app->register(Liugj\Xunsearch\XunsearchServiceProvider::class);
配置
通过编辑 config/scout.php
的第 62 行,将配置文件发布到您的项目中
'xunsearch' => [ 'index' => env('XUNSEARCH_INDEX_HOST', ''), 'search' => env('XUNSEARCH_SEARCH_HOST', ''), 'schema' => [ 'brand_index'=>app()->basePath() .'/'. env('XUNSEARCH_SCHEMA_BRAND'), ] ],
将 Xunsearch 设置添加到 .env
文件中
SCOUT_DRIVER=xunsearch
XUNSEARCH_INDEX_HOST=127.0.0.1:8383
XUNSEARCH_SEARCH_HOST=127.0.0.1:8384
XUNSEARCH_SCHEMA_BRAND=config/brand.ini
使用
现在您可以使用 Laravel Scout,如官方文档所述。
Where 子句
此引擎允许您添加更多高级的 "where" 子句。
- addRange
$users = App\User::search('Star Trek')
->where('age', new \Liugj\Xunsearch\Operators\RangeOperator(30,50))->get();
- setCollapse
$users = App\User::search('Star Trek')
->where('city', new \Liugj\Xunsearch\Operators\CollapseOperator($num = 10))->get();
- setFuzzy
$users = App\Users::search('Star Trek')
->where('**', new \Liugj\Xunsearch\Operators\FuzzyOperator($fuzzy = false))->get();
- setFacets
$users = App\Users::search('Star Trek')
->where('***', new \Liugj\Xunsearch\Operators\FacetsOperator(array('age','city')))->get();
- addWeight
$users = App\User::search('Star Trek')
->where('country', new \Liugj\Xunsearch\Operators\WeightOperator('US'))->get();
配置可搜索的数据
默认情况下,给定模型的整个 toArray 形式将被持久化到其搜索索引中。如果您想自定义同步到搜索索引的数据,您可以在模型上覆盖 toSearchableArray 方法
<?php
namespace App;
use Liugj\Xunsearch\Searchable;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use Searchable;
/**
* Get the indexable data array for the model.
*
* @return array
*/
public function toSearchableArray()
{
$array = $this->toArray();
// Customize array...
return $array;
}
}
##链接
感谢
许可证
MIT 许可证 (MIT)。