Elastic Search:如何查看索引数据
Posted
技术标签:
【中文标题】Elastic Search:如何查看索引数据【英文标题】:Elastic Search: how to see the indexed data 【发布时间】:2012-02-15 19:23:31 【问题描述】:我在使用 ElasticSearch 和 Rails 时遇到了问题,其中一些数据由于 attr_protected 而没有被正确索引。 Elastic Search 将索引数据存储在哪里?检查实际的索引数据是否错误会很有用。
使用Tire.index('models').mapping
检查映射没有帮助,该字段已列出。
【问题讨论】:
【参考方案1】:探索 ElasticSearch 集群的最简单方法可能是使用elasticsearch-head。
您可以通过以下方式安装它:
cd elasticsearch/
./bin/plugin -install mobz/elasticsearch-head
然后(假设 ElasticSearch 已经在您的本地机器上运行),打开浏览器窗口:
http://localhost:9200/_plugin/head/
或者,您可以在命令行中使用curl
,例如:
检查索引的映射:
curl -XGET 'http://127.0.0.1:9200/my_index/_mapping?pretty=1'
获取一些示例文档:
curl -XGET 'http://127.0.0.1:9200/my_index/_search?pretty=1'
查看存储在特定字段中的实际术语(即如何分析该字段):
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 插件
到目前为止,为 Elasticsearch 编写 curl
样式命令的最简单方法是 Sense plugin in Marvel。
它带有源代码突出显示、漂亮的缩进和自动完成功能。
注意:Sense was originally a standalone chrome plugin but is now part of the Marvel project。
【讨论】:
在 Robin 这样的情况下,我认为只需使用 curlcurl localhost:9200/my_index/_search?q=*&pretty
检查数据就足够了——假设索引中的文档集有限。
感谢您推荐 Sense 插件。看起来很棒。
Sense chrome 插件非常适合使用 REST API。 _head 非常适合检查!
Facets are now deprecated
谢谢,这真的很有用。顺便说一句,语法是 ./bin/plugin install mobz/elasticsearch-head 。即您不需要安装前的连字符。【参考方案2】:
查看索引数据的最简单方法绝对是在浏览器中查看。 无需下载或安装。
我假设您的 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
以查看您的数据:
【讨论】:
谢谢 Jan,这正是我想要的。 我只是有一个问题,http://127.0.0.1:9200/products_development/_search?pretty=1
是否只显示示例数据?它似乎没有显示所有数据
文档 here 声明搜索结果默认为前 10 个文档(查找 hits.hits
)
这根本不显示索引数据。它只显示您的源数据——与您输入的内容完全相同。不回答 OP 的问题。
?漂亮就够了,不用加"=1"【参考方案3】:
ElasticSearch data browser
搜索、图表、一键设置....
【讨论】:
谢谢,我去看看:)【参考方案4】:聚合解决方案
通过对数据进行分组来解决问题 - DrTech 的回答使用方面来管理这个问题,但是,will be deprecated according to Elasticsearch 1.0 reference.
Warning
Facets are deprecated and will be removed in a future release. You are encouraged to
migrate to aggregations instead.
分面被聚合替换 - Introduced in an accessible manner in the Elasticsearch Guide - which loads an example into sense.。
短解
除了聚合需要aggs
而不是facets
和count of 0 which sets limit to max integer - the example code requires the Marvel Plugin,解决方案是相同的
# 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:
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。
....
"aggregations":
"indexed_occupier_names":
"buckets": [
"key": "john",
"doc_count": 2 <= 2 documents matching
,
"key": "mark",
"doc_count": 1 <= 1 document matching
]
....
【讨论】:
【参考方案5】:一个对我调试 ElasticSearch 有很大帮助的工具是ElasticHQ。基本上,它是一个带有一些 javascript 的 html 文件。无需在任何地方安装,更不用说在 ES 本身中:只需下载它,解压缩 int 并使用浏览器打开 HTML 文件。
不确定它是否是 ES 重度用户的最佳工具。然而,对于急于查看条目的人来说,这真的很实用。
【讨论】:
【参考方案6】:Kibana 也是一个很好的解决方案。它是 Elastic 的数据可视化平台。如果安装了它,它会默认运行在 5601 端口上。
它提供了许多东西。它有“开发工具”,我们可以在其中进行调试。
例如,您可以在此处使用命令检查您的可用索引
GET /_cat/indices
【讨论】:
【参考方案7】:如果您使用的是 Google Chrome,那么您可以简单地使用这个名为 Sense 的扩展程序,如果您使用 Marvel,它也是一个工具。
https://chrome.google.com/webstore/detail/sense-beta/lhjgkmllcaadmopgmanpapmpjgmfcfig
【讨论】:
【参考方案8】:按照@JanKlimo 的例子,在终端上你所要做的就是:
查看所有索引:
$ curl -XGET 'http://127.0.0.1:9200/_cat/indices?v'
查看索引products_development_20160517164519304
的内容:
$ curl -XGET 'http://127.0.0.1:9200/products_development_20160517164519304/_search?pretty=1'
【讨论】:
以上是关于Elastic Search:如何查看索引数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Cloud Function 将数据从 Firebase Firestore 索引到 Elastic App Search?
微服务 分布式搜索引擎 Elastic Search RestAPI