Elasticsearch 入门系列二:使用 Kibana Dev tools 进行接口调试

336 阅读2分钟

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 访问。

Pasted image 20230821145451.png

这里提示需要输入 Enrollment token,所以进入 elasticsearch 容器 ,执行:

$ bin/elasticsearch-create-enrollment-token -s kibana

输入 token 之后,刷新页面,进入登录页面:

Pasted image 20230821151204.png

然后就可以访问 webui,比如我们可以在 Kibana Dev tools 来进行接口测试:

Pasted image 20230821151641.png

http://localhost:5601/app/dev_tools#/console

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是一个开源的全文搜索引擎,可以帮助您快速构建高性能、可扩展的搜索应用。"
        }
      }
    ]
  }
}