我是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' },
}
}
}
);
答案 0 :(得分:0)
由于信息太少,我只能猜测: 在您提供的映射中,keepalive未明确存储,alasticsearch默认为no。如果您不存储字段,则只能通过完整的源获取,默认情况下存储。或者您更改,映射,向您的字段添加(“存储”:“是”)并重新索引。
祝ES好运,值得花几天时间学习。