
在Elasticsearch中运行查询时,您可以请求其返回原始数据,例如,指定字段:
curl -XGET http://localhost:9200/myindex/date-test/_search?pretty -d '{ "fields" : "aDate", "query":{ "match_all":{ } }}'将以您最初存储日期的格式为您提供日期:
{ "_index" : "myindex", "_type" : "date-test", "_id" : "AUrlWNTAk1DYhbTcL2xO", "_score" : 1.0, "fields" : { "aDate" : [ "2015-01-13T20:08:56" ] }}, { "_index" : "myindex", "_type" : "date-test", "_id" : "AUrlQnFgk1DYhbTcL2xM", "_score" : 1.0, "fields" : { "aDate" : [ 1421179734000 ] }除非使用脚本,否则无法更改日期格式。
curl -XGET http://localhost:9200/myindex/date-test/_search?pretty -d '{ "query":{ "match_all":{ } }, "script_fields":{ "aDate":{ "script":"use( groovy.time.TimeCategory ) { new Date( doc["aDate"].value ) }" } }}'将返回:
{ "_index" : "myindex", "_type" : "date-test", "_id" : "AUrlWNTAk1DYhbTcL2xO", "_score" : 1.0, "fields" : { "aDate" : [ "2015-01-13T20:08:56.000Z" ] }}, { "_index" : "myindex", "_type" : "date-test", "_id" : "AUrlQnFgk1DYhbTcL2xM", "_score" : 1.0, "fields" : { "aDate" : [ "2015-01-13T20:08:54.000Z" ] }}要应用格式,请按如下所示附加格式:
"script":"use( groovy.time.TimeCategory ){ new Date( doc["aDate"].value ).format("yyyy-MM-dd") }"将返回
"aDate" : [ "2015-01-13" ]
要显示
T,您需要使用引号,但将其替换为等效的Unipre:
"script":"use( groovy.time.TimeCategory ){ new Date( doc["aDate"].value ).format("yyyy-MM-ddu0027Tu0027HH:mm:ss") }"退货
"aDate" : [ "2015-01-13T20:08:54" ]
返回script_fields和源
在查询中使用 _source 指定要返回的字段:
curl -XGET http://localhost:9200/myindex/date-test/_search?pretty -d ' { "_source" : "name", "query":{ "match_all":{ } }, "script_fields":{ "aDate":{ "script":"use( groovy.time.TimeCategory ) { new Date( doc["aDate"].value ) }" } } }'将返回我的
name字段:
"_source":{"name":"Terry"}, "fields" : { "aDate" : [ "2015-01-13T20:08:56.000Z" ] }使用星号将返回所有字段,例如:
"_source" : "*",
"_source":{"name":"Terry","aDate":1421179736000}, "fields" : { "aDate" : [ "2015-01-13T20:08:56.000Z" ] }欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)