ElasticSearch:字段未返回

时间:2013-12-23 20:51:05

标签: elasticsearch

我是ElasticSearch的新手,请原谅我的愚蠢。

我似乎无法从ES中获取keepalive字段。

{
      "_index" : "2013122320",
      "_type" : "log",
      "_id" : "Y1M18ZItTDaap_rOAS5YOA",
      "_score" : 1.0
    }

我可以从中获取其他字段cdn:

{
      "_index" : "2013122320",
      "_type" : "log",
      "_id" : "2neLlVNKQCmXq6etTE6Kcw",
      "_score" : 1.0,
      "fields" : {
        "cdn" : "-"
      }
}

映射就在那里:

{
  "log": {
    "_timestamp": {
      "enabled": true,
      "store": true
    },
    "properties": {
      "keepalive": {
        "type": "integer"
      }
    }
  }
}

修改

我们使用以下perl代码

每小时创建一个新索引
create_index(
 index   => $index,
 settings => {
  _timestamp => { enabled => 1, store => 1 },
  number_of_shards      => 3,
  number_of_replicas    => 1,
 },
 mappings => {
  varnish => {
   _timestamp => { enabled => 1, store => 1 },
   properties  => {
    content_length => { type => 'integer' },
    age => { type => 'integer' },
    keepalive => { type => 'integer' },
    host        => { type => 'string', index => 'not_analyzed' },
    time        => { type => 'string', store => 'yes' },
<SNIPPED>
    location    => { type => 'string', index => 'not_analyzed' },

   }
  }
 }
);

1 个答案:

答案 0 :(得分:0)

由于信息太少,我只能猜测: 在您提供的映射中,keepalive未明确存储,alasticsearch默认为no。如果您不存储字段,则只能通过完整的源获取,默认情况下存储。或者您更改,映射,向您的字段添加(“存储”:“是”)并重新索引。

祝ES好运,值得花几天时间学习。