Ruby on rails 弹性搜索:如何查看索引数据
我在ElasticSearch和Rails中遇到了一个问题,其中一些数据由于attr_保护而没有正确索引。弹性搜索在哪里存储索引数据?检查实际的索引数据是否错误会很有用Ruby on rails 弹性搜索:如何查看索引数据,ruby-on-rails,
elasticsearch,attr-protected,Ruby On Rails,
elasticsearch,Attr Protected,我在ElasticSearch和Rails中遇到了一个问题,其中一些数据由于attr_保护而没有正确索引。弹性搜索在哪里存储索引数据?检查实际的索引数据是否错误会很有用 使用Tire.index('models')检查映射。映射没有帮助,字段已列出。探索ElasticSearch群集的最简单方法可能是使用 您可以通过执行以下操作来安装它: cd elasticsearch/ ./bin/plugin -install mobz/elasticsearch-head 然后(假设ElasticSe
使用
Tire.index('models')检查映射。映射没有帮助,字段已列出。探索ElasticSearch群集的最简单方法可能是使用
您可以通过执行以下操作来安装它:
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'
查看存储在特定字段中的实际术语(即该字段的分析方式):
更多信息请访问:
更新:感觉插件在
到目前为止,编写Elasticsearch的curl
样式命令的最简单方法是
它具有源代码高亮显示、漂亮的缩进和自动完成功能
注:。
搜索、图表、一键设置……聚合解决方案
通过对数据进行分组来解决问题-DrTech的答案使用了方面来管理数据,但是
面将替换为聚合-
短解
解决方案相同,只是聚合需要aggs
而不是facets
,并且具有-
回应
显示相关聚合代码的响应。索引中有两个键,John和Mark
....
"aggregations": {
"indexed_occupier_names": {
"buckets": [
{
"key": "john",
"doc_count": 2 <= 2 documents matching
},
{
"key": "mark",
"doc_count": 1 <= 1 document matching
}
]
}
}
....
。。。。
“聚合”:{
“索引占用人姓名”:{
“桶”:[
{
“钥匙”:“约翰”,
“doc_count”:2这是一个帮助我调试ElasticSearch的工具。基本上,它是一个带有一些JavaScript的HTML文件。无需在任何地方安装,更不用说ES本身了:只需下载它,解压缩int并用浏览器打开HTML文件
不确定它是否是ES重度用户的最佳工具。但是,对于急于查看条目的用户来说,它确实很实用。查看索引数据最简单的方法是在浏览器中查看。无需下载或安装。
我假设您的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
输出将如下所示:
请注意别名
,这意味着我们也可以访问以下位置的索引:
http://127.0.0.1:9200/products_development
步骤3
导航到http://127.0.0.1:9200/products_development/_search?pretty
要查看您的数据:
如果您使用的是Google Chrome,那么您可以简单地使用这个名为Sense的扩展。如果您使用Marvel,它也是一个工具
以下是@JanKlimo示例,在终端上,您需要做的就是:
要查看所有索引,请执行以下操作:
$curl-XGET'http://127.0.0.1:9200/_cat/indices?v'
要查看索引产品的内容\u开发\u 20160517164519304
:
$curl-XGET'http://127.0.0.1:9200/products_development_20160517164519304/_search?pretty=1“
Kibana也是一个很好的解决方案。它是Elastic的数据可视化平台。如果安装了它,默认情况下会在端口5601上运行
它提供了很多东西。它有“开发工具”,我们可以在这里进行调试
例如,您可以在此处使用命令检查可用索引
GET /_cat/indices
在Robin的例子中,我认为只需使用curlcurl localhost:9200/my_index/\u search?q=*&pretty
——假设索引中的文档集有限。感谢推荐Sense插件。它看起来很棒。chrome的Sense插件非常适合使用REST API。而_head非常适合用于检查目的!Thanks这真的很有用。顺便说一句,语法是./bin/plugin install mobz/elasticsearch head。也就是说,你不需要在安装前加上连字符。谢谢,我来看看:)谢谢你,简,这正是我要找的。我只是有个问题,http://127.0.0.1:9200/products_development/_search?pretty=1
仅显示样本数据a?它似乎没有显示所有数据文档声明搜索结果默认为前10个文档(查找点击次数。点击次数
),这根本不显示索引数据。它只显示与您输入的数据完全相同的源数据。不回答OPs问题。?漂亮就足够了,不需要添加“=1”
# 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
}
}
}
}
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
}
}
}
}
....
"aggregations": {
"indexed_occupier_names": {
"buckets": [
{
"key": "john",
"doc_count": 2 <= 2 documents matching
},
{
"key": "mark",
"doc_count": 1 <= 1 document matching
}
]
}
}
....
GET /_cat/indices