boomhq / laravel-scout-elastic
Laravel Scout 的 Elastic 驱动程序
5.0.12
2020-06-09 17:19 UTC
Requires
- php: >=5.6.4
- elasticsearch/elasticsearch: ^5.0
- laravel/scout: ^5.0|^6.0|^7.0|^8.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 boomhq/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://'), ], //set If one index per model (use searchableAs Methode) (defaut false) 'perModelIndex' => true, ], ...
用法
自定义索引
如果您想推送特定索引,可以在 Model 中使用 elasticsearchIndex()
声明(否则您需要删除索引并重新导入以创建它们)
public function elasticsearchIndex() { return [ "settings" => [ "analysis" => [ "analyzer" => [ "default" => [ "tokenizer" => "my_tokenizer", "filter" => [ "lowercase" ] ], "default_search" => [ "tokenizer" => "my_tokenizer" ] ], "tokenizer" => [ "my_tokenizer" => [ "type" => "edge_ngram", "min_gram" => 3, "max_gram" => 20, "token_chars" => [ "letter" ], "filter" => [ "lowercase", "asciifolding" ] ] ] ], "max_ngram_diff" => "20" ] ]; }
自定义查询
在 Model 中,您可以通过以下方式指定自定义查询
public function customScoutQuerySearching($terms): array { return [ 'query' => [ 'multi_match' => [ 'query' => (string) ($terms), 'fields' => [ '*' ], 'fuzziness' => 'AUTO', 'type' => 'most_fields' ] ], ]; }
现在您可以使用 Laravel Scout,如官方文档中所述
致谢
许可证
MIT 许可证 (MIT)