我在使用ElasticSearch和Rails时遇到了一个问题,由于attr_protected的原因,一些数据没有被正确索引。Elastic Search将索引数据存储在哪里?检查实际索引数据是否错误会很有用。使用Tire.index('models').mapping检查Map没有帮助,该字段已列出。
Tire.index('models').mapping
c3frrgcw1#
探索ElasticSearch集群的最简单方法可能是使用elasticsearch-head。您可以通过执行以下操作来安装它:
cd elasticsearch/ ./bin/plugin install mobz/elasticsearch-head
然后(假设ElasticSearch已经在您的本地机器上运行),打开一个浏览器窗口:http://localhost:9200/_plugin/head/或者,您可以从命令行使用curl,例如:检查索引的Map:
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
到目前为止,为Elasticsearch编写curl风格命令的最简单方法是Sense plugin in Marvel。它带有源代码突出显示,漂亮的缩进和自动完成。注:Sense was originally a standalone chrome plugin but is now part of the Marvel project。
hmmo2u0o2#
查看索引数据的最简单方法是在浏览器中查看。无需下载或安装。我假设你的elasticsearch主机是http://127.0.0.1:9200。
http://127.0.0.1:9200
第一步
导航到http://127.0.0.1:9200/_cat/indices?v以列出索引。您将看到如下内容:
http://127.0.0.1:9200/_cat/indices?v
第二步
尝试访问所需的索引:http://127.0.0.1:9200/products_development_20160517164519304输出结果如下所示:
http://127.0.0.1:9200/products_development_20160517164519304
注意aliases,这意味着我们也可以访问索引:http://127.0.0.1:9200/products_development
aliases
http://127.0.0.1:9200/products_development
第三步
导航到http://127.0.0.1:9200/products_development/_search?pretty以查看您的数据:
http://127.0.0.1:9200/products_development/_search?pretty
hwazgwia3#
ElasticSearch data browser搜索、图表、一键设置....
m1m5dgzv4#
通过对数据进行分组来解决问题- 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
aggs
facets
# 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 } ] } } ....
bakd9h0s5#
一个对我调试ElasticSearch很有帮助的工具是ElasticHQ。基本上,它是一个带有一些JavaScript的HTML文件。不需要安装在任何地方,更不用说ES本身了:只需下载它,解压缩int并使用浏览器打开HTML文件。不确定它是否是ES重度用户的最佳工具。然而,对于那些急于查看条目的人来说,它确实很实用。
np8igboo6#
Kibana也是一个很好的解决方案。它是Elastic的数据可视化平台。如果安装了它,默认运行在端口5601上。在它提供的许多东西中。它有“开发工具”,我们可以在那里做你的调试。例如,您可以在这里使用以下命令检查可用索引
GET /_cat/indices
7uhlpewt7#
如果你使用的是谷歌浏览器,那么你可以简单地使用这个名为Sense的扩展程序,如果你使用Marvel,它也是一个工具。https://chrome.google.com/webstore/detail/sense-beta/lhjgkmllcaadmopgmanpapmpjgmfcfig
zysjyyx48#
按照@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'
$ 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'
8条答案
按热度按时间c3frrgcw1#
探索ElasticSearch集群的最简单方法可能是使用elasticsearch-head。
您可以通过执行以下操作来安装它:
然后(假设ElasticSearch已经在您的本地机器上运行),打开一个浏览器窗口:
http://localhost:9200/_plugin/head/
或者,您可以从命令行使用
curl
,例如:检查索引的Map:
获取一些示例文档:
查看存储在特定字段中的实际术语(即该字段是如何分析的):
更多信息请访问:http://www.elasticsearch.org/guide
更新:Marvel中的感知插件
到目前为止,为Elasticsearch编写
curl
风格命令的最简单方法是Sense plugin in Marvel。它带有源代码突出显示,漂亮的缩进和自动完成。
注:Sense was originally a standalone chrome plugin but is now part of the Marvel project。
hmmo2u0o2#
查看索引数据的最简单方法是在浏览器中查看。无需下载或安装。
我假设你的elasticsearch主机是
http://127.0.0.1:9200
。第一步
导航到
http://127.0.0.1:9200/_cat/indices?v
以列出索引。您将看到如下内容:第二步
尝试访问所需的索引:
http://127.0.0.1:9200/products_development_20160517164519304
输出结果如下所示:
注意
aliases
,这意味着我们也可以访问索引:http://127.0.0.1:9200/products_development
第三步
导航到
http://127.0.0.1:9200/products_development/_search?pretty
以查看您的数据:hwazgwia3#
ElasticSearch data browser
搜索、图表、一键设置....
m1m5dgzv4#
聚合解决方案
通过对数据进行分组来解决问题- DrTech的答案在管理这个问题时使用了方面,但是,will be deprecated according to Elasticsearch 1.0 reference.
面被聚合-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完整解决方案
下面是测试它的Sense代码--一个房屋索引的例子,有一个居住者类型和一个字段first_name:
响应
显示相关聚合代码的响应。索引中有两个键John和Mark。
bakd9h0s5#
一个对我调试ElasticSearch很有帮助的工具是ElasticHQ。基本上,它是一个带有一些JavaScript的HTML文件。不需要安装在任何地方,更不用说ES本身了:只需下载它,解压缩int并使用浏览器打开HTML文件。
不确定它是否是ES重度用户的最佳工具。然而,对于那些急于查看条目的人来说,它确实很实用。
np8igboo6#
Kibana也是一个很好的解决方案。它是Elastic的数据可视化平台。如果安装了它,默认运行在端口5601上。
在它提供的许多东西中。它有“开发工具”,我们可以在那里做你的调试。
例如,您可以在这里使用以下命令检查可用索引
7uhlpewt7#
如果你使用的是谷歌浏览器,那么你可以简单地使用这个名为Sense的扩展程序,如果你使用Marvel,它也是一个工具。
https://chrome.google.com/webstore/detail/sense-beta/lhjgkmllcaadmopgmanpapmpjgmfcfig
zysjyyx48#
按照@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'