乐闻世界logo
搜索文章和话题

Elasticsearch 如何查看索引数据

6 个月前提问
2 个月前修改
浏览次数164

6个答案

1
2
3
4
5
6

在Elasticsearch中,查看索引数据是一个常见的需求,主要用于验证数据的存储和获取,确保索引正确。下面是几种常用的方法来查看Elasticsearch索引中的数据:

1. 使用Kibana

Kibana是Elasticsearch的官方UI,它提供了一个用户友好的界面来查看、搜索和管理Elasticsearch的数据。

步骤如下:

  • 首先,确保你的Elasticsearch集群和Kibana已经启动并正常运行。
  • 打开Kibana的主界面,通常是 http://<kibana-host>:<port>
  • 在左侧菜单中选择“Discover”模块。
  • 选择你想要查询的索引模式。
  • 可以通过设置时间范围或输入Elasticsearch查询语句来搜索指定的数据。

这种方法适合于需要通过图形界面来快速查看和分析数据的场景。

2. 使用Elasticsearch的REST API

Elasticsearch提供了强大的REST API,可以通过各种HTTP请求来查看和管理索引数据。

示例:使用_search API获取数据:

bash
curl -X GET "localhost:9200/your-index-name/_search?pretty" -H 'Content-Type: application/json' -d' { "query": { "match_all": {} } } '

这个命令会返回your-index-name索引中的所有文档。你可以通过修改查询体(query)来指定更具体的查询需求。

3. 使用Elasticsearch客户端库

如果你在应用程序中需要访问Elasticsearch数据,可以使用Elasticsearch提供的客户端库,如Java, Python等。

Python示例:

python
from elasticsearch import Elasticsearch # 连接到Elasticsearch服务 es = Elasticsearch("http://localhost:9200") # 执行查询 response = es.search(index="your-index-name", body={"query": {"match_all": {}}}) # 打印结果 print(response['hits']['hits'])

这种方法适合于程序中需要自动化处理Elasticsearch数据的场景。

以上是几种常用的查看Elasticsearch索引数据的方法。根据不同的使用场景和需求,你可以选择最适合的方法来实现。

2024年6月29日 12:07 回复

探索 ElasticSearch 集群的最简单方法可能是使用elasticsearch-head

您可以通过执行以下操作来安装它:

shell
cd elasticsearch/ ./bin/plugin install mobz/elasticsearch-head

然后(假设 ElasticSearch 已在您的本地计算机上运行),打开浏览器窗口以:

http://localhost:9200/_plugin/head/

或者,您可以仅curl从命令行使用,例如:

检查索引的映射:

shell
curl -XGET 'http://127.0.0.1:9200/my_index/_mapping?pretty=1'

获取一些示例文档:

shell
curl -XGET 'http://127.0.0.1:9200/my_index/_search?pretty=1'

查看存储在特定字段中的实际术语(即如何分析该字段):

shell
curl -XGET 'http://127.0.0.1:9200/my_index/_search?pretty=1' -d ' { "facets" : { "my_terms" : { "terms" : { "size" : 50, "field" : "foo" } } } }

更多信息请访问:http://www.elasticsearch.org/guide

更新:Marvel中的 Sense 插件

到目前为止,curl为 Elasticsearch 编写风格命令的最简单方法是Marvel 中的 Sense 插件

它具有源代码突出显示、漂亮的缩进和自动完成功能。

注意:Sense 最初是一个独立的 chrome 插件,但现在是 Marvel 项目的一部分

2024年6月29日 12:07 回复

查看索引数据的最简单方法绝对是在浏览器中查看。无需下载或安装。

我假设您的 elasticsearch 主机是http://127.0.0.1:9200.

步骤1

导航至http://127.0.0.1:9200/_cat/indices?v列出您的索引。你会看到这样的东西:

在此输入图像描述

第2步

尝试访问所需的索引: http://127.0.0.1:9200/products_development_20160517164519304

输出将如下所示:

在此输入图像描述

请注意 ,这aliases意味着我们也可以访问以下位置的索引: http://127.0.0.1:9200/products_development

步骤3

导航至http://127.0.0.1:9200/products_development/_search?pretty查看您的数据:

在此输入图像描述

2024年6月29日 12:07 回复

聚合解决方案

通过对数据进行分组来解决问题 - DrTech 的答案使用了方面来管理此问题,但根据 Elasticsearch 1.0 参考,将被弃用。

shell
Warning Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.

Facets 被聚合所取代 -在 Elasticsearch 指南中以易于理解的方式引入 - 它加载了一个示例。

简短的解决方案

解决方案是相同的,除了聚合需要而不是aggs计数为 0 且将限制设置为最大整数 -示例代码需要 Marvel 插件facets

shell
# Basic aggregation GET /houses/occupier/_search?search_type=count { "aggs" : { "indexed_occupier_names" : { <= Whatever you want this to be "terms" : { "field" : "first_name", <= Name of the field you want to aggregate "size" : 0 } } } }

完整解决方案

下面是测试它的 Sense 代码 - 房屋索引的示例,带有占用者类型和字段first_name:

shell
DELETE /houses # Index example docs POST /houses/occupier/_bulk { "index": {}} { "first_name": "john" } { "index": {}} { "first_name": "john" } { "index": {}} { "first_name": "mark" } # Basic aggregation GET /houses/occupier/_search?search_type=count { "aggs" : { "indexed_occupier_names" : { "terms" : { "field" : "first_name", "size" : 0 } } } }

回复

显示相关聚合代码的响应。索引中有两个键:John 和 Mark。

shell
.... "aggregations": { "indexed_occupier_names": { "buckets": [ { "key": "john", "doc_count": 2 <= 2 documents matching }, { "key": "mark", "doc_count": 1 <= 1 document matching } ] } } ....
2024年6月29日 12:07 回复

ElasticHQ是一个对我调试 ElasticSearch 有很大帮助的工具。基本上,它是一个带有一些 JavaScript 的 HTML 文件。无需在任何地方安装,更不用说在 ES 本身中:只需下载它,解压缩 int 并使用浏览器打开 HTML 文件。

不确定它是 ES 重度用户的最佳工具。然而,对于那些急于查看条目的人来说,这确实很实用。

2024年6月29日 12:07 回复

你的答案