crasmedia / laravel-scout-elastic
此包最新版本(3.0.2)没有可用的许可信息。
Elastic Driver for Laravel Scout
3.0.2
2017-02-10 09:03 UTC
Requires
- php: >=5.6.4
- elasticsearch/elasticsearch: ^5.0
- laravel/scout: ^3.0
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~5.0
Suggests
- elasticsearch/elasticsearch: Required to use the Elasticsearch engine (^5.0).
README
本包是 Laravel Scout 的 Elasticsearch 驱动。
内容
安装
您可以通过 composer 安装此包
composer require Crasmedia/laravel-scout-elastic
您必须在 app.php 配置文件中添加 Scout 服务提供者和包服务提供者
// config/app.php 'providers' => [ ... Laravel\Scout\ScoutServiceProvider::class, ... ScoutEngines\Elasticsearch\ElasticsearchProvider::class, ],
设置 Elasticsearch 配置
您必须有一个运行中的 Elasticsearch 服务器,并且已经创建了您想要使用的索引
如果您需要帮助,请参阅 Elasticsearch 文档
在发布 Laravel Scout 包配置之后
// config/scout.php // Set your driver to elasticsearch 'driver' => env('SCOUT_DRIVER', 'elasticsearch'), ... 'elasticsearch' => [ 'index' => env('ELASTICSEARCH_INDEX', 'laravel'), 'hosts' => [ env('ELASTICSEARCH_HOST', 'https://'), ], ], ...
使用
现在您可以使用 Laravel Scout,具体请参考 官方文档
自定义修改
您可以创建/删除自己的索引,并将自定义映射放在上面
$index = config('scout.elasticsearch.index'); // Check if index exists if($model->searchableUsing()->exists($index)) { // Delete index if exists $model->searchableUsing()->deleteIndex($index); } // Create new index $model->searchableUsing()->createIndex($index); // Put custom mapping $mappings = $model->mapping(); $model->searchableUsing()->putMapping($index, $model->getTable(), $mappings);
要使用自定义映射,只需在模型中添加一个映射函数
public function mapping() { $mapping = [ 'title' => [ 'type' => 'keyword' ] ]; return $mapping; }
增强
如果您想增强某些字段,只需在模型中添加一个 boosts 变量
protected $boosts = [ 'title' => 2 ];
排序
只需使用 eloquent order by 函数
Model::search('')->orderBy('title', 'asc')->get()
致谢
许可
MIT 许可证 (MIT)。