Homestead环境下安装Elasticsearch并使用scout进行全文检索

长亭外,古道边,芳草碧连天。 晚风扶柳笛声残,夕阳山外山。

在 homestead 的 homestead.yml 配置文件中添加

1
2
3
4
5
6
7
8
9
10
11
12
13
features:
- mariadb: false
- ohmyzsh: false
- webdriver: false
- elasticsearch:
version: 7.6

ports:
- send: 63790
to: 6379
- send: 9100
to: 9200

开启 homestead 中的 elasticsearch

因为需要安装软件镜像在国外,所以需要设置国内的镜像

打开 homestead/scripts/features/elasticssearch.sh 文件

将 apt-get 安装的内容替换为

1
2
3
4
5
6
7
8
9
10
11
12
13
14

sed -i "s@http://.*archive.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list
sed -i "s@http://.*security.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list

sudo apt-get update

wget https://mirrors.huaweicloud.com/elasticsearch/7.6.1/elasticsearch-7.6.1-amd64.deb
sudo apt-get -y install openjdk-11-jre
# sudo apt-get -y install elasticsearch"$installVersion"

sudo dpkg -i elasticsearch-7.6.1-amd64.deb
# Start Elasticsearch on boot

sudo update-rc.d elasticsearch defaults 95 10

设置外网访问

在 /etc/elasticsearch/elasticsearch.yml 中添加

1
2
network.host: 0.0.0.0
discovery.seed_hosts: ["127.0.0.1", "::1"]

重启 elasticsearch

1
sudo service elasticsearch restart

安装 ik 中文分词插件

打开 /usr/share/elasticsearch/plugins

创建 文件夹

1
sudo mkdir ik

将下载的 https://github.com/medcl/elasticsearch-ana… 解压到 ik 文件夹中

1
unzip  xxx.zip

重启服务

1
sudo service elasticsearch restart

安装 kibana

kibana 是一款界面管理工具 官方出品的

laravel 安装全文搜索

1
2
3
composer require tamayo/laravel-scout-elastic 
composer require laravel/scout //版本可能不兼容 具体看composer中的兼容版本
php artisan vendor:publish //选择其中的配置文件发布

发布配置文件后需要对配置文件进行更改

1
'driver' => env('SCOUT_DRIVER', 'algolia'), //在env 中 添加   elasticsearch

在 scount.php 中添加

1
2
3
4
'elasticsearch' => [    
'index' => env('ELASTICSEARCH_INDEX', 'products'),
'hosts' => [ env('ELASTICSEARCH_HOST', 'http://localhost'), ]
]

https://learnku.com/articles/42730