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,请参考如下的文章来进行安装:
- 如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch
- Kibana:如何在 Linux,MacOS 及 Windows上安装 Elastic 栈中的 Kibana
特别指出的是:我们选择安装最新的 Elastic Stack 8.3.2。
InteliJ
我们在地址 Download IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains 根据自己的平台下载最新的 InteliJ 来进行安装。我下载 Ultimate 试用版本,并在 Ubuntu 上进行安装。我们下载它的安装包,解压至一个安装目录,并执行如下的命令来进行启动:
./bin/idea.sh
安装 InteliJ Elasticsearch 插件
在上面,我们搜索 Elasticsearch 插件,并点击 Install 按钮:
我们接着创建一个 Java 样本项目:
建立 Elasticsearch 的连接
我们按照如下的选择来创建 Elasticsearch 连接:
我们选择更新 Elasticsearch 驱动:
我们首先删除已经安装的比较旧的驱动。我们接下来到地址 Download JDBC Client | Elastic 下载最新版本的驱动 x-pack-sql-jdbc-8.3.2.jar,或者去地址 https://www.elastic.co/downloads/past-releases 下载之前的版本。请注意:必须和 Elasticsearch 的安装版本相同。我们点击上面的 + 符号来上传最新的驱动:
接下来,我们找到 Elasticsearch 的安装目录,并查看它的安装证书:
parallels@liuxg:~/elastic/elasticsearch-8.3.2$ pwd
/home/parallels/elastic/elasticsearch-8.3.2
parallels@liuxg:~/elastic/elasticsearch-8.3.2$ ls ca/
ca.crt ca.key
关于这些证书的情况,你可以阅读我之前的文章:
- Elasticsearch:使用不同的 CA 更新安全证书 (一)
- Elasticsearch:使用不同的 CA 更新安全证书 (二)
我们把上面的证书的路径输入到如下的配置中:
我们需要记得证书的密码。我们接着回到之前的 General 页面继续配置:
点击上面的 Test Connection:
在上面我们可以看到有一个错误信息。它表明我们的 Elasticsearch 的 License 有问题。由于这个功能是白金版功能,我们需要启动试用。更多关于 Elasticsearch 版权的信息,请在地址 订阅 | Elastic Stack 产品和支持 | Elastic 进行查看。
我们可以在 Kibana 里执行如下的命令:
POST /_license/start_trial?acknowledge=true&pretty
或者直接到 Stack Management 中启动白金版试用功能:
这样我们就启动了白金版试用功能。
我们再次来测试我们的连接:
这次显然我们的连接是成功的。 我们甚至可以看到远程的 Elasticsearch 集群的索引:
关于如何建立远程集群的连接,请参考我的另外一篇文章 “Elasticsearch:通过 JDBC 使用 SQL 来查询索引 - DBeaver”。
导入例子索引
我们按照如下的步骤来导入 Kibana 自带的例子索引:
我们通过这样的操作就把 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":"北京","province":"北京","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":"twitter","_id":6}}
{"user":"老吴","message":"好友来了都今天我生日,好友来了,什么 birthday happy 就成!","uid":7,"age":28,"city":"上海","province":"上海","country":"中国","address":"中国上海市闵行区", "DOB": "1991-04-01"}
我们可以看到更新后的视图如下:
查询
我们可以做如下的查询:
更多相关功能请观看视频:IntelliJ Elasticsearch - Professional GUI Client for Elasticsearch
版权归原作者 Elastic 中国社区官方博客 所有, 如有侵权,请联系我们删除。