ruby - elasticsearch无法理解签名日期

标签 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)

最佳答案

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

我过去所做的是

  • 插入文档。
  • 提取映射(请参阅here的方式)。
  • 根据我的喜好更新映射。
  • 对新映射执行PUT操作。为此,您可能需要创建其他类型,因为有时ES无法即时替换映射。

  • 我从来没有用日期来做过,但是不得不用索引字段的方式来做几次。

    关于ruby - elasticsearch无法理解签名日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34921699/

    相关文章:

    ruby - map 和每个的输出差异

    elasticsearch - 使用映射文件创建索引时出错

    elasticsearch - 字词汇总-汇总所有文档中的每个单词

    ruby-on-rails - Rake 任务以查找具有 nil 值的属性

    ruby-on-rails - Rails 嵌套资源

    ruby - 如何使用 defined?(super) 和 define_method

    ruby - 给定字符串的所有可能排列?

    java - 找不到类型为 : class org. json.JSONObject 的返回值的转换器

    python - ElasticSearch 更新不是即时的,你如何等待 ElasticSearch 完成更新它的索引?

    amazon-web-services - Elasticsearch 与语音搜索