首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在kibana中设置fielddata=true

如何在kibana中设置fielddata=true
EN

Stack Overflow用户
提问于 2016-07-01 20:54:33
回答 5查看 109.5K关注 0票数 59

我是Kibana的新手,将数据加载到Elastic 5.0.0-alpha3中,并使用Kibana 5.0.0-alpha3进行可视化。我可以将一些数值字段显示为直方图,但当我想要使用文本字段时,我会得到:

代码语言:javascript
复制
Visualize: Fielddata is disabled on text fields by default. Set fielddata=true on [publisher] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory.

我被警告说数据(出版商的名字)可能已经被分析成子字段,但我还是想显示出来。

如何设置fielddata=true

编辑: Kibana github上的最新问题表明,这是5.0.0中的一个新功能,还在等待答案!

编辑(遵循@Val的回答,寻求Elastic菜鸟的帮助,并希望其他人会发现它很有用)。摄取脚本为:

代码语言:javascript
复制
fs = require('fs')

var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({
 host: 'localhost:9200',
 log: 'trace'
});

fs.readFile('/Users/pm286/workspace/cmdev/getpapers/20160602/crossref_results.json', (err, data) => {
  if (err) throw err;
   document = JSON.parse(data)
  document = JSON.parse(data)

  for(i=0;i<document.length;i++) {
      client.create({
          index: 'index',
          type: 'type',
          body: document[i]
          })
      }
  });

如何将@Val的方法包含在其中?

EN

回答 5

Stack Overflow用户

发布于 2017-02-07 22:51:06

因为你使用的是Elastic 5.x (我写这篇文章的时候5.2已经发布了),所以你应该使用新的关键字support,而不是在索引字段上启用fielddata。

https://www.elastic.co/guide/en/elasticsearch/reference/5.2/fielddata.html提供了关于优点和缺点以及如何设置的很好的信息。在该页面中:

代码语言:javascript
复制
PUT my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "my_field": { 
          "type": "text",
          "fields": {
            "keyword": { 
              "type": "keyword"
            }
          }
        }
      }
    }
  }
}

然后使用'my_field‘字段进行搜索,使用'my_field.keyword’字段进行聚合、排序或在脚本中使用。

my_field.keyword是您在Kibana / Grafana中使用的。

票数 34
EN

Stack Overflow用户

发布于 2019-10-15 11:28:29

如果您来自"ElasticsearchThe权威指南“这本书,请尝试更改以下内容

代码语言:javascript
复制
"terms" : { "field" : "interests" },

代码语言:javascript
复制
"terms" : { "field" : "interests.keyword" },

因此,要运行的代码将变成;

代码语言:javascript
复制
GET /megacorp/employee/_search
{
  "aggs": {
    "all_interests": {
      "terms": { "field": "interests.keyword"}
    }
  }
}
票数 18
EN

Stack Overflow用户

发布于 2017-08-24 04:44:15

这段代码解决了这个问题。

代码语言:javascript
复制
PUT megacorp/_mapping/employee
{
   "employee": {
      "properties": {
        "interests": {
          "type": "text",
          "fielddata": true
        }
      }
   }
}

因此这段代码将在之后运行:

代码语言:javascript
复制
GET /megacorp/employee/_search
    {
      "aggs": {
        "all_interests": {
          "terms": { "field": "interests"}
        }
      }
    }
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38145991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档