Elasticsearch:InteliJ Elasticsearch plugin 集成

2022年8月25日   |   by mebius

Intelij 是 Java 开发者的首先开发工具。很多开发者也使用 Java 来集成 Elasticsearch。IntelliJ IDEA 的每个方面都旨在最大限度地提高开发人员的生产力。智能编码辅助和符合人体工程学的设计共同使开发不仅富有成效,而且令人愉快。而 InteliJ Elasticsearch 插件一个专业的 GUI 客户端转为访问 Elasticsearch 而设置的。IntelliJ Elasticsearch 是 JetBrains IDE 的高级插件。 通过更快的数据探索、查询生成、书签等加速你的 Elasticsearch 工作流程。IntelliJ Elasticsearch 插件允许你连接到 Elasticsearch 或 Kibana,浏览和编辑你的数据并执行 REST API 请求。它有如下的功能:

  • 使用 SSH、SSL 或 AWS 签名连接到 Elasticsearch 或 Kibana
  • 在表格或 JSON 视图中浏览数据、排序和隐藏字段,以及使用 KQL 轻松过滤
  • 将你最喜欢的请求保存在项目或暂存文件中
  • 查询 DSL 和 REST API 自动完成
  • 使用带有字段自动完成功能的 Kibana 查询语言进行搜索
  • REST API 和查询 DSL 的 Elasticsearch 文档
  • 具有简短信息的集群、索引、别名和节点列表
  • 在表格或对话窗口中创建、更新或删除文档
  • 支持所有 Elasticsearch 版本
  • 还有其它更多

在本文的下面部分,我将描述如何使用这个插件并进行一些展示。我将使用最新的 Elastic Stack 8.3.2 来进行展示。

安装

Elastic Stack

如果你还没有安装好自己的 Elasticsearch 及 Kibana,请参考如下的文章来进行安装:

特别指出的是:我们选择安装最新的 Elastic Stack 8.3.2。

InteliJ

我们在地址Download IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains根据自己的平台下载最新的 InteliJ 来进行安装。我下载 Ultimate试用版本,并在 Ubuntu 上进行安装。我们下载它的安装包,解压至一个安装目录,并执行如下的命令来进行启动:

./bin/idea.sh 

%title插图%num

安装 InteliJ Elasticsearch 插件

%title插图%num

在上面,我们搜索 Elasticsearch 插件,并点击 Install 按钮:

%title插图%num

%title插图%num

%title插图%num

%title插图%num

我们接着创建一个 Java 样本项目:

%title插图%num

建立 Elasticsearch 的连接

我们按照如下的选择来创建 Elasticsearch 连接:

%title插图%num

%title插图%num

我们选择更新 Elasticsearch 驱动:

%title插图%num

%title插图%num

我们首先删除已经安装的比较旧的驱动。我们接下来到地址Download JDBC Client | Elastic下载最新版本的驱动x-pack-sql-jdbc-8.3.2.jar,或者去地址 https://www.elastic.co/downloads/past-releases下载之前的版本。请注意:必须和 Elasticsearch 的安装版本相同。我们点击上面的 + 符号来上传最新的驱动:

%title插图%num

接下来,我们找到 Elasticsearch 的安装目录,并查看它的安装证书:

parallels@liuxg:~/elastic/elasticsearch-8.3.2$ pwd
/home/parallels/elastic/elasticsearch-8.3.2
parallels@liuxg:~tgcode/elastic/elasticsearch-8.3.2$ ls ca/
ca.crt  ca.key

关于这些证书的情况,你可以阅读我之前的文章:

我们把上面的证书的路径输入到如下的配置中:

%title插图%num

我们需要记得证书的密码。我们接着回到之前的 General 页面继续配置:

%title插图%num

点击上面的 Test Connection:

%title插图%num

在上面我们可以看到有一个错误信息。它表明我们的 Elasticsearch 的 License 有问题。由于这个功能是白金版功能,我们需要启动试用。更多关于 Elasticsearch 版权的信息,请在地址订阅 | Elastic Stack 产品和支持 | Elastic进行查看。

我们可以在 Kibana 里执行如下的命令:

POST /_license/start_trial?acknowledge=true&pretty

或者直接到 Stack Management 中启动白金版试用功能:

%title插图%num

这样我们就启动了白金版试用功能。

我们再次来测试我们的连接:

%title插图%num

这次显然我们的连接是成功的。 我们甚至可以看到远程的 Elasticsearch 集群的索引:

%title插图%num

关于如何建立远程集群的连接,请参考我的另外一篇文章 “Elasticsearch:通过 JDBC 使用 SQL 来查询索引 – DBeaver”。

导入例子索引

我们按照如下的步骤来导入 Kibana 自带的例子索引:

%title插图%num

%title插图%num

我们通过这样的操作就把 Kibana 自带的索引kibana_sample_data_flights 及kibana_sample_data_logs 写入到 Elasticsearch 中了。

我们按照如下的方式来创建一个新的 twitter 索引:

PUT twitter
{
  "mappings": {
    "properties": {
      "DOB": {
        "type": "date"
      },
      "address": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      },
      "age": {
        "type": "long"
      },
      "city": {
        "type": "keyword"
      },
      "country": {
        "type": "keyword"
      },
      "message": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      },
      "province": {
        "type": "keyword"
      },
      "uid": {
        "type": "long"
      },
      "user": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      }
    }
  }
}
POST _bulk
{"index":{"_index":"twitter","_id":1}}
{"user":"张三","message":"今儿天气不错啊,出去转转去","uid":2,"age":20,"city":"北京","province":"北京","country":"中国","address":"中国北京市海淀区","DOB": "1999-04-01"}
{"index":{"_index":"twitter","_id":2}}
{"user":"老刘","message":"出发,下一站云南!","uid":3,"age":22,"city":"北京","province":"北京","country":"中国","address":"中国北京市东城区台基厂三条3号", "DOB": "1997-04-01"}
{"index":{"_index":"twitter","_id":3}}
{"user":"李四","message":"happy birthday!","uid":4,"age":25,"city":"北京","province":"北京","country":"中国","address":"中国北京市东城区","DOB": "1994-04-01"}
{"index":{"_index":"twitter","_id":4}}
{"user":"老贾","message":"123,gogogo","uid":5,"age":30,"city":"北京","tgcodeprovince":"北京","country":"中国","address":"中国北京市朝阳区建国门", "DOB": "1989-04-01"}
{"index":{"_index":"twitter","_id":5}}
{"user":"老王","message":"Happy BirthDay My Friend!","uid":6,"age":26,"city":"北京","province":"北京","country":"中国","address":"中国北京市朝阳区国贸","DOB": "1993-04-01"}
{"index":{"_index":"twitgcodetter","_id":6}}
{"user":"老吴","message":"好友来了都今天我生日,好友来了,什么 birthday happy 就成!","uid":7,"age":28,"city":"上海","province":"上海","country":"中国","address":"中国上海市闵行区", "DOB": "1991-04-01"}

我们可以看到更新后的视图如下:

%title插图%num

查询

我们可以做如下的查询:

%title插图%num

%title插图%num

更多相关功能请观看视频:IntelliJ Elasticsearch – Professional GUI Client for Elasticsearch

文章来源于互联网:Elasticsearch:InteliJ Elasticsearch plugin 集成

相关推荐: Elasticsearch:Ingest pipeline 介绍

Ingest pipeline 可让你在索引之前对数据执行常见转换。 例如,你可以使用 pipeline 删除字段、从文本中提取值并丰富你的数据。 Pipeline 由一系列称为处理器(processors)的可配置任务组成。 每个处理器按顺序运行,对传入文档…

Tags: , , , , ,