logcomex/aws-elasticsearch-laravel

AWS Elasticsearch 服务用于 Laravel/Lumen

v1.5.1 2018-09-26 05:09 UTC

This package is auto-updated.

Last update: 2024-08-29 06:00:04 UTC


README

AWS Elasticsearch 服务用于 Laravel/Lumen

注意: 此包仅提供搜索、聚合和索引事务。除此之外,您可以参考 Elasticsearch 的官方文档

安装

composer require elegisandi/aws-elasticsearch-laravel

Laravel/Lumen 集成

  • 将服务提供者添加到您的 config/app.php 提供者

    elegisandi\AWSElasticsearchService\ElasticSearchServiceProvider::class
    
  • 将外观添加到您的 config/app.php 别名

    'ElasticSearch' => elegisandi\AWSElasticsearchService\Facades\ElasticSearch::class
    
  • 在您的 .env 文件中设置 AWS 凭据和 Elasticsearch 配置

      AWS_ACCESS_KEY_ID
      AWS_SECRET_ACCESS_KEY
      AWS_REGION
    
      ELASTICSEARCH_ENDPOINT
      ELASTICSEARCH_PORT
      ELASTICSEARCH_SHARDS
      ELASTICSEARCH_REPLICAS
      ELASTICSEARCH_DEFAULT_INDEX
      ELASTICSEARCH_DEFAULT_TYPE
      ELASTICSEARCH_DEFAULT_TIME_FILTER_FIELD
    

    如果您已经在使用 aws elasticsearch 服务,请设置

      AWS_ELASTICSEARCH_SERVICE=true
    

如果您想配置 Elasticsearch 映射、设置和/或默认类型和索引,只需运行

php artisan vendor:publish --provider=elegisandi\\AWSElasticsearchService\\ElasticSearchServiceProvider

Lumen 专用

  • 将服务提供者注册到您的 bootstrap/app.php

    $app->register(elegisandi\AWSElasticsearchService\ElasticSearchServiceProvider::class);      
    

基本用法

使用外观

<?php
    
namespace App;

use ElasticSearch;

public function index() {
    extract(ElasticSearch::setSearchParams(request()));

    $clicks = [];
    $total = 0;

    if ($hits = ElasticSearch::search($query, $options, $date_range)) {
        $clicks = $hits['hits']['hits'];
        $total = $hits['hits']['total'];
    }
}

Lumen 专用

<?php
        
namespace App;

public function index() {
    extract(app('elasticsearch')->setSearchParams(request()));

    $clicks = [];
    $total = 0;

    if ($hits = app('elasticsearch')->search($query, $options, $date_range)) {
        $clicks = $hits['hits']['hits'];
        $total = $hits['hits']['total'];
    }
}

控制台命令

  • 创建索引 (创建默认索引)

    php artisan elasticsearch:create-index

    要重置现有索引,

    php artisan elasticsearch:create-index --reset

  • 更新索引映射 (更新默认索引映射)

    php artisan elasticsearch:update-index-mapping

    仅支持新属性更新。

可用方法

  • aggregations(array $aggs, array $query = [], array $options = [], $type, $index)

    $aggs : 必须遵循 Elasticsearch 文档 中指定的结构。

    $query : 查看 search 方法 $query 参数

    $options : 查看 search 方法 $options 参数

    返回 Array

  • search(array $query = [], array $options = [], array $range = [], $type, $index)

    $query : 任何可用属性的键值对数组

    $options : 键值对数组,包含以下内容:from, size, sort

    $range : 范围查询 的数组表示

    返回 Array

  • count(array $query = [], array $range = [], $type, $index)

    a (语法糖) 方法,用于搜索零次命中结果

    返回 Int

  • setSearchParams(Request $request, array $defaults = [], $type)

    这是一种可选且常规的方法,通过查询字符串设置搜索参数

    $request : \Illuminate\Http\Request 的实例,使用了查询变量

    • range,请参阅 getDateRange 方法
    • start,一个有效的日期字符串
    • end,一个有效的日期字符串
    • sort,一个映射属性
    • order,值是 descasc
    • size,要返回的总结果数 (最多 10000)

    $defaults : 键值对数组,包含以下内容:sort, order, size

    返回 Array

  • getDateRange($range, $format = null)

    $range : 预定义的日期范围值:today, yesterday, last-7-days, this-month, last-month, last-2-months, last-3-months

    $format 必须是有效的日期格式,默认为 null,将返回一个 DateTime 实例

    返回 Array

  • setAggregationDailyDateRanges($start, $end, $format = null)

    $format 必须是有效的日期格式,默认为 null,将返回一个 DateTime 实例

    返回 Array

  • 默认聚合名称

    返回 Array

  • 默认索引

    返回 String

  • 默认类型

    返回 String

  • 默认时间过滤器字段

    返回 String

  • 设置搜索查询过滤器(Collection $queryarray $bool_clauses = []$type = null

    返回 Array

  • 设置布尔查询条件(Collection $queryarray $properties$context$occurcallable $callback = null

    返回 Array

  • 根据数据类型获取映射属性(Collection $properties$data_type

    返回 Array

  • 获取映射属性($type = null

    返回 Collection

  • 索引文档(array $body$type = null$index = null

    返回 Array

  • 获取文档($id$type$index

    返回 Array

  • 更新文档(array $fields$id$type = null$index = null

    返回 Array

  • 删除文档($id$type = null$index = null

    返回 Array

  • 获取设置($index = null

    返回 Array

  • 更新设置(array $settings$index

    返回 Array

  • 获取映射($index, $type

    返回 Array

  • 更新映射(array $properties$type$index

    返回 Array

  • 创建索引(array $mappingsarray $settings$index
  • 获取索引($index = null

    返回 Boolean

  • 删除索引($index

    返回 Array

注意:现在支持 Elasticsearch 客户端的所有方法。

限制

  • 搜索 方法中支持的数据类型有

    • keyword
    • text
    • array
    • integer
    • boolean
    • ip

贡献

首先打开一个问题来讨论潜在的更改/添加。

许可

MIT