1、安装 Kibana
Kibana 可以将 Elasticsearch 中的数据转化为直观的图表、图形和仪表盘。
运行以下命令:
# 拉取 Kibana 镜像
$ docker pull docker.elastic.co/kibana/kibana:8.9.0
# 启动 Kibana 镜像
$ docker run --name kibana --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.9.0
也可以改写为 docker-compose:
version: '3'
services:
kibana:
image: docker.elastic.co/kibana/kibana:8.9.0
container_name: kibana
networks:
- elastic
ports:
- "5601:5601"
然后用下面的命令启动容器:
$ docker-compose up
启动 Kibana 服务之后,可以通过浏览器访问 Kibana 的 Web 界面。默认情况下,Kibana 的 Web 界面可以通过 http://localhost:5601 访问。
这里提示需要输入 Enrollment token,所以进入 elasticsearch 容器 ,执行:
$ bin/elasticsearch-create-enrollment-token -s kibana
输入 token 之后,刷新页面,进入登录页面:
然后就可以访问 webui,比如我们可以在 Kibana Dev tools 来进行接口测试:
2、elasticsearch 简单示例
使用Elasticsearch,可以将博客文章的内容存储到索引中,并通过全文搜索的方式来搜索文章内容。Elasticsearch支持多种查询方式,包括基于关键词的搜索、短语搜索、模糊搜索、通配符搜索等,可以根据实际需求来选择使用。
以下是一个简单的示例,演示如何使用Elasticsearch实现文章内容搜索:
1) 创建索引
首先,您需要创建一个索引来存储文章内容。可以使用Elasticsearch提供的REST API来创建索引,例如:
PUT /blog_index
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"title": {
"type": "text"
},
"content": {
"type": "text"
}
}
}
}
上述代码创建了一个名为“blog_index”的索引,包含两个字段:title和content。这两个字段都被定义为“text”类型,表示它们是可搜索的文本字段。
响应结果如下:
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "blog_index"
}
2) 添加文章
接下来,您需要将博客文章的内容添加到索引中。可以使用Elasticsearch提供的REST API来添加文档,例如:
PUT /blog_index/_doc/1
{
"title": "Elasticsearch入门教程",
"content": "Elasticsearch是一个开源的全文搜索引擎,可以帮助您快速构建高性能、可扩展的搜索应用。"
}
上述代码将一篇名为“Elasticsearch入门教程”的文章添加到索引中,其中包含标题和内容两个字段
响应结果如下:
{
"_index": "blog_index",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
3) 搜索文章
最后,您可以使用Elasticsearch提供的REST API来搜索文章,例如:
GET /blog_index/_search
{
"query": {
"match": {
"content": "全文搜索引擎"
}
}
}
上述代码将搜索包含“全文搜索引擎”关键词的文章,并返回匹配的结果。
响应结果如下:
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 1.941854,
"hits": [
{
"_index": "blog_index",
"_id": "1",
"_score": 1.941854,
"_source": {
"title": "Elasticsearch入门教程",
"content": "Elasticsearch是一个开源的全文搜索引擎,可以帮助您快速构建高性能、可扩展的搜索应用。"
}
}
]
}
}