Bổ sung cho các vấn đề elastic

Bổ sung cho các vấn đề elastic

Như đã demo ở https://dev.truyenvideo.com/p/su-dung-elasticsearch-de-xu-ly-viec-tim-kiem-trong-laravel-11 .Bài này mình có 1 số lưu ý về việc cài đặt elastic 

Thứ 1 cần tắt ssl : do mình dùng ip vps nên cái ssl này không dùng được nó chỉ được dùng với domain .Cách tắt các bạn vào file config : chỉnh từ enabled sang false

# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
  enabled: false

Còn trong model :

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use JeroenG\Explorer\Application\Explored;
use Laravel\Scout\Searchable;

class Menu extends Model implements Explored
{
    use HasFactory;
    use Searchable;
    /**
     * The attributes that aren't mass assignable.
     *
     * @var array
     */
    // protected $guarded = ['id', 'created_at', 'updated_at'];
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = ['name', 'link'];

    public function searchableAs()
    {
        return 'demo_menu';
    }
    public function mappableAs(): array
    {
        return [
            'id' => 'keyword',
            'name' => 'text',
        ];
    }
}

Mình nên xác định luôn phần bảng elastic cho model với searchableAs và các trường dữ liệu map , định dạng keyword là kiểu không trùng lặp 

Trong mục controller nên xác định file mà cần tìm kiếm 

$data = Menu::search('Thức')
            ->field('name')
            ->paginate(20);

Ở đây mình chỉ tìm từ thức trong trường name :

Mình dùng extention https://chromewebstore.google.com/detail/multi-elasticsearch-heads/cpmmilfkofbeimbmgiclohpodggeheim?pli=1 để kiểm tra elastic search

Các bạn có thể xem  

Cấu hình thì trong file config \config\explorer.php: 

'connection' => [
        'host' => env('ELASTICSEARCH_HOST', 'localhost'),
        'port' => '9200',
        'scheme' => 'http',
        'auth' => [
            'username' => env('ELASTICSEARCH_USER'),
            'password' => env('ELASTICSEARCH_PASS'),
        ],
        'caFingerprint' => 'BBCF0ADF067C260DAFB2373431AA82F3E8ACC21EF5B930CCB51CD6D33CF1E7E5',
    ],

Trong file config\scout.php :

 'driver' => env('SCOUT_DRIVER', 'algolia'),

Với .env : SCOUT_DRIVER=elastic