elasticsearch无法理解签约日期

时间:2016-01-21 10:51:20

标签: ruby elasticsearch

我尝试使用我的ruby脚本在Elasticsearch(1.7)上保存包含当前值的文档。

{
"P577 ": [{
    "snaktype": "value",
    "property": "P577",
    "hash": "2a7ea4b81277334f08c4cd9efbce76001505a481",
    "datavalue": {
        "value": {
            "time": "+2015-10-16T00:00:00Z",
            "timezone": 0,
            "before": 0,
            "after": 0,
            "precision": 11,
            "calendarmodel": "http://www.wikidata.org/entity/Q1985727"
        },
        "type": "time"
    },
    "datatype": "time"
}]
}

证明ES并不知道如何处理time+2015-10-16T00:00:00Z)。
有没有办法让ES了解这种日期?
我知道我可以使用映射,但我展示的是一个非常小的巨型JSON,有很多嵌套节点(like here

2 个答案:

答案 0 :(得分:1)

不幸的是,唯一的方法是使用自定义映射并更改ES detects dates的方式:

我过去所做的是

  1. 插入文件。
  2. 提取映射(请参阅here)。
  3. 根据我的喜好更新地图。
  4. 执行新映射的PUT ...为此,您可能需要创建不同的类型,因为有时ES无法动态替换映射。
  5. 我从来没有用日期做过这件事,但是必须按字段索引的方式做几次。

答案 1 :(得分:0)

&#34 + 2015-10-16T00:00:00Z"删除加号并试一试。  " 2015-10-16T00:00:00Z"