栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Laravel elasticsearch 案例

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Laravel elasticsearch 案例

前置
开发环境
	Laravel 8
	Docker
	mysql 5.7
	elasticsearch 7.9.1
	ik 7.9.1
1.数据库
CREATE TABLE `posts` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL DEFAULT '',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  `deleted_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `post-title` (`title`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4;
2.Docker 安装 Elasticsearch 容器 2-1.将以下内容 追加 docker-compose.yml
  elasticsearch:
      container_name: xb_elasticsearch
      image: elasticsearch:7.9.1
      environment:
        - "discovery.type=single-node"
      networks:
        - wb_net
      ports:
        - 9200:9200
      volumes:
        - './storage/elasticsearch:/var/lib/elasticsearch'
2-2.重新构建容器 docker-compose up -d && docker-compose restart 3.进入 xb_elasticsearch 容器 并安装 IK 分词器
 docker exec -it xb_elasticsearch bash
 
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.1/elasticsearch-analysis-ik-7.9.1.zip

 -y
 
 exit;
4.重启容器 docker-compose restart 验证 elasticsearch 是否安装成功,点击我 如下图所示安装成功

5.安装composer 包 并 发布服务
composer require laravel/scout
composer require matchish/laravel-scout-elasticsearch
php artisan vendor:publish --provider="LaravelScoutScoutServiceProvider"
6.env 下追加:
SCOUT_DRIVER=MatchishScoutElasticSearchEnginesElasticSearchEngine
ELASTICSEARCH_HOST=物理机ip(或容器名称):9200
7.注册服务 config/app.php.providers
MatchishScoutElasticSearchElasticSearchServiceProvider::class
8.清除配置缓存
php artisan config:clear
9.创建索引配置文件 (config/elasticsearch.php)
 [
     'mappings' => [
         'post-title' => [ //数据库索引名称
             "properties"=>  [
                 "title"=>  [ //字段
                     "type"=>  "text",
                     "analyzer"=>  "ik_max_word",
                     "search_analyzer"=>  "ik_smart"
                 ]
             ]
         ]
     ]
 ],
];
10.配置Model
apply($query);
    }


    
    public function searchableAs()
    {
        return 'post-title';
    }

    
    public function toSearchableArray()
    {
        return [
            'title' => self::query()
        ];
    }

    
    public function getScoutKey()
    {
        return $this->id;
    }

    
    public function getScoutKeyName()
    {
        return 'id';
    }
}

11.导入Model
php artisan scout:import
12.测试数据
INSERT INTO `posts` (`title`) VALUES ('看一遍闭着眼都会安装Lua1');
13.创建 ElasticTest
php artisan make:command ElasticTest
argument('query'))->get()->toArray();
        dd($articles);
    }
}
elasticsearch 对比 Like 模糊查询 LIke

elasticsearch


END

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/468173.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号