【问题标题】:Elasticsearch appends random strings to source data inside indexesElasticsearch 将随机字符串附加到索引内的源数据
【发布时间】:2016-11-01 19:19:28
【问题描述】:

我是 Elasticsearch 的新手,有一个特殊的问题:我正在使用带有 kibana 的 elasticsearch 来存储和可视化我的应用程序中的大部分事件。例如,要存储 user_id 为 123 的用户登录信息,我将写入索引 user/login/123 并将以下数组作为数据:

{
   "details" : {
       "fname" : "John",
       "lname" : "Smith",
       "click" : "login-button",
        etc...
    },
    "ip_address" : 127.0.0.1,
    "browser_type" : "Chrome",
    "browser_version" : "17"
}

但是我遇到的问题是某些记录在“详细信息”数组之后显示为随机字符串:请参见屏幕截图。谁能建议我做错了什么以及如何修复现有索引?

Screenshot

【问题讨论】:

    标签: elasticsearch indexing lucene kibana


    【解决方案1】:

    我认为你的数据中应该有这样的东西:

    {
        "details" : {
           "28d211adbf" : {
              "stats" : {
                 "merge_field_count": 6,
                 "unsubscribe_count_since_send": 3
              }
           },
           "555cd3bcba" : {
              "stats" : {
                 "merge_field_count": 6,
                 "unsubscribe_count_since_send": 3
              }
           }
        },
        "ip_address" : 127.0.0.1,
        "browser_type" : "Chrome",
        "browser_version" : "17"
    }
    

    在elasticsearch中索引文档实际上不是一个好习惯。 阅读有关映射爆炸的更多信息: https://www.elastic.co/blog/found-crash-elasticsearch#mapping-explosion

    【讨论】:

    • 谢谢菲利普,但我的数据正如我所描述的(详细信息是来自主应用程序的结构化对象)。我不明白那些随机字符串是从哪里来的……我不想有 28d211adbf 索引。这就是为什么我要问它们来自哪里......是弹性搜索添加它们以减少重复吗?
    • 我认为问题出在主应用程序中的对象表示中。您如何在主应用程序中表示您的对象?随机字符串看起来像一个哈希键。您是否在主应用程序的结构化对象中使用了 hashmap 或类似的东西?
    猜你喜欢
    • 1970-01-01
    • 2021-10-04
    • 2021-08-11
    • 1970-01-01
    • 2015-01-22
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多