最近由于项目需要,需要提供一个图书的搜索API接口,计划用ElasticSearch来实现。
在计划使用ES提供图书搜索API之前需要解决环境配置,以及测试工具的准备。
环境:
OS:Ubuntu 16.04 LTS
Java:openjdk version "1.8.0_222"
APT:apt 1.2.32ubuntu0.1 (amd64)
注意:本环境主要为测试使用,因此为一个单点服务。
安装并运行ES
ElasticSearch(后面简称ES)是建立在全文搜索引擎Lucene基础上的,一个分布式、可扩展、实时的搜索引擎。官网提供了中文版本文档可供参考。
1. 安装
目前在Ubuntu上,安装ES可以选择通过源码进行编译安装,以及通过apt进行安装,我所选择的是apt-get进行安装,具体操作如下:
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update
sudo apt-get install elasticsearch
关于源码编译安装,可参考官网。
2. 配置
通过apt安装好ES后,其配置文件默认位置:/etc/elasticsearch/elasticsearch.yml
关于配置文件,为了便于大家进行测试调参等,需要优先配置为局域网内可使用,修改以下内容:
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["mode-1"]
3. 启动
通过service命令进行服务的启动
sudo service elasticsearch start
sudo service elasticsearch stop
4. 测试
当启动完成后,可以通过浏览器或者命令行进行确认服务是否有正确启动。
可以使用浏览器输入:http://xx.xx.xx.xx:9200,若看到以下内容则可以判断该服务已经可以正常使用。
{
"name": "helyao-jobspace",
"cluster_name": "elasticsearch",
"cluster_uuid": "tBn_1b5rTmSsPsEvPykZ1g",
"version": {
"number": "7.7.0",
"build_flavor": "default",
"build_type": "deb",
"build_hash": "81a1e9eda8e6183f5237786246f6dced26a10eaf",
"build_date": "2020-05-12T02:01:37.602180Z",
"build_snapshot": false,
"lucene_version": "8.5.1",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}
若工作环境没有界面,也可以通过命令行进行确认:
curl 'http://localhost:9200/?pretty'
Kibana工具的使用
Kibana是ElasticStack的成员之一,通过网页可对ES索引中的数据进行搜索、查看、交互操作,并可以通过图标等可视化工具进行数据分析。官网提供了中文版本文档可供参考。
1. 安装
依旧采用目前在Ubuntu上,安装Kibana依旧可以选择通过源码进行编译安装,以及通过apt进行安装。
sudo apt-get install kibana
2. 配置
Kibana配置文件默认路径:/etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
i18n.locale: "zh-CN"
3. 启动
通过service命令进行服务的启动
sudo service kibana start
sudo service kibana stop
4. 测试
当启动完成后,可通过浏览器进行测试是否安装完成。
在浏览器地址栏输入:http://xx.xx.xx.xx:5601
可以使用控制台进行验证(控制台的记录会被保存下来,在刚开始接触ES时,是非常好用的工具)。
通过Python进行ES调用
使用Python的elasticsearch包实现对ES的增删改查操作。
Install:
pip install elasticsearch
Example:
import