crasmedia/laravel-scout-elastic

此包最新版本(3.0.2)没有可用的许可信息。

Elastic Driver for Laravel Scout

3.0.2 2017-02-10 09:03 UTC

This package is not auto-updated.

Last update: 2024-09-23 15:20:39 UTC


README

Software License

本包是 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
];

更多关于 elastic 的信息

排序

只需使用 eloquent order by 函数

Model::search('')->orderBy('title', 'asc')->get()

致谢

许可

MIT 许可证 (MIT)。