上次简单介绍了ES7.8的基本情况--,这次根据官方的入门部署篇进行简单介绍。
涉及到的文档地址如下:
https://www.elastic.co/guide/en/elasticsearch/reference/7.8/getting-started.html
https://www.elastic.co/guide/en/elasticsearch/reference/7.8/getting-started-install.html
https://www.elastic.co/guide/en/elasticsearch/reference/7.8/getting-started-index.html
https://www.elastic.co/guide/en/elasticsearch/reference/7.8/getting-started-search.html
https://www.elastic.co/guide/en/elasticsearch/reference/7.8/getting-started-aggregations.html
https://www.elastic.co/guide/en/elasticsearch/reference/7.8/getting-started-next-steps.html
本次的任务:
本机模拟部署三节点
索引测试数据
使用ES的查询语言来查询数据
对数据进行聚合和指标分析
任务一:
https://www.elastic.co/downloads/elasticsearch
https://www.elastic.co/downloads/kibana
一、分别下载7.8.1的ElasticSearchh和Kibana。以下以windows的zip为例。放到本地目录。这里以D:\demo
二、配置ES,打开D:\demo\elasticsearch-7.8.1-windows-x86_64\elasticsearch-7.8.1\config\elasticsearch.yml 。配置path.data 为D:\demo\esdatamain。
三、运行D:\demo\elasticsearch-7.8.1-windows-x86_64\elasticsearch-7.8.1\bin\elasticsearch.bat 。等ES正常启动后。访问http://127.0.0.1:9200/ 查看单节点情况下的ES信息
四、单机三节点
首先验证目前的节点数。
http://127.0.0.1:9200/_cat/health?v
目前为一个节点。然后分别启动第二个,第三个实例
D:\demo\elasticsearch-7.8.1-windows-x86_64\elasticsearch-7.8.1\bin\elasticsearch.bat -E path.data=D:\demo\esdatanode2 -E path.logs=D:\demo\esnode2log
D:\demo\elasticsearch-7.8.1-windows-x86_64\elasticsearch-7.8.1\bin\elasticsearch.bat -E path.data=D:\demo\esdatanode3 -E path.logs=D:\demo\esnode3log
没过一会,节点数量变成三个了。注意的是这仅仅只是单机三节点。而多机多节点的情况更复杂。
五、kibana启动
D:\demo\kibana-7.8.1-windows-x86_64\config\kibana.yml增加elasticsearch.hosts为es地址,这次不用修改
然后启动kibana,可能会有如下提示。
稍微等一会,会出现这样的
最后会出来正常页面了。
六、kibana中文语言包使用
还是修改kibana.yml。把i18n.locale变成"zh-CN"。然后重启
顺利出现中文
任务一顺利完成。
任务二、索引测试数据
以下测试均为未申明类型下的ES自动识别类型,关于这块,之前简单提过---,之后会更更详细的说下。
索引数据,可以使用PUT/POST方法。
其中PUT可以指定数据的id,
PUT /customer/_doc/1
{
"name": "John Doe"
}
POST方法不指定id,由ES自动生成一个。
POST /customer/_doc/
{
"name": "John Doe"
}
可使用如下语法进行搜索:
POST /customer/_search
{
"query": {"match_all": {}}
}
另一种方式是批量处理 bulk。之后介绍。
任务三:简单的查询
先来看简单的查询语句
GET /bank/_search
{
"query": { "match_all": {} },
"sort": [
{ "account_number": "asc" }
]
}。
可以看到ES基本语句,query来查询,sort支持排序。类似sql中的 select * from a where a.x =b order by a.c的语法
返回值解析
和mysql类似,也支持from size的参数
GET /bank/_search
{
"query": { "match_all": {} },
"sort": [
{ "account_number": "asc" }
],
"from": 10,
"size": 10
}
ES具体的搜索方式,我们将在后面介绍。match,bool等。
任务四:简单的聚合数据
同样,由一个简单的聚合语句开始
GET /bank/_search
{
"size": 0,
"aggs": {
"group_by_state": {
"terms": {
"field": "state.keyword"
}
}
}
}
类似mysql的group by 语句。注意的field的意思存在一个子域,通过子域来聚合。具体我们也会在后面介绍。
ES也支持在聚合排序。
GET /bank/_search
{
"size": 0,
"aggs": {
"group_by_state": {
"terms": {
"field": "state.keyword",
"order": {
"average_balance": "desc"
}
},
"aggs": {
"average_balance": {
"avg": {
"field": "balance"
}
}
}
}
}
}
按照average_balance来逆向排序,而average_balance又是平均值。
ES还有个几个弹性应用,Site Search 和 App Search 和 Enterprise Search 我们之后介绍。
领取专属 10元无门槛券
私享最新 技术干货