Elasticsearch如何使用Image Plugin获取元数据

时间:2014-04-16 07:16:38

标签: image plugins elasticsearch metadata

我通过Elasticsearch图像插件的映射来定义matadata。

映射:

"photo" : {
  "mappings" : {
    "scenery" : {
      "properties" : {
        "my_img" : {
          "type" : "image",
          "feature" : {"FCTH" : { }, ... },
          "metadata" : {
            "jpeg.image_height" : {"type" : "string","store" : true},
            "jpeg.image_width" : {"type" : "string","store" : true}
          }
        }
      }
    }
  }
}

在索引之后,虽然搜索了,但元数据不会返回。 如何获取元数据?

我试过了:

curl -XPOST 'localhost:9200/photo/scenery/_search' -d '{
  "query":{
    "image":{
      "my_img":{
        "feature":"CEDD",
        "index":"photo",
        "type":"scenery",
        "id":"0",
        "path":"my_img",
        "hash":"BIT_SAMPLING"
      }
    }
  }
}'

结果:

{"took":14,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":5,"max_score":1.0,"hits":[{"_index":"photo","_type":"scenery","_id":"0","_score":1.0, "_source" : {"file_name": "376423.jpg", "my_img": "/9j/4AAQSkZJRgABAQ...

1 个答案:

答案 0 :(得分:0)

也许,原始数据(base64编码图像)将返回_source字段。您可以使用fields选项。

尝试此查询。

curl -XPOST 'localhost:9200/photo/scenery/_search' -d '{
  "query":{
    ...
  },
  "fields": ["my_img.metadata.jpeg.image_height","my_img.metadata.jpeg.image_width" ]
}'