dataframe - 如何通过使用嵌套属性创建的Elasticsearch索引解决Root映射定义的参数不受支持的问题?

标签 dataframe elasticsearch kibana devops elk

如何使用嵌套属性创建索引来创建映射结构?我在下面出现错误。该网址产生以下结果:
http://xxx:9200/usereventsreduced-2020/event/_search?pretty=true

UrlQueryString是一个嵌套的!我们需要描述它是嵌套的。

{
  "took": 42,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 7108,
    "max_score": 7.4923043,
    "hits": [
      {
        "_index": "usereventsreduced-2020",
        "_type": "event",
        "_id": "omHM3G8BiazbIYmiMj35",
        "_score": 7.4923043,
        "_source": {
          "UserId": "",
          "SessionId": "",
          "LogLevel": "Error",
          "CorrelationId": "d49ad78d-1f38-4fed-ae47-9d6768402212",
          "UrlMethod": "GET",
          "Data": "",
          "UrlQueryString": {
            "smId": "df178847-c8e2-4434-b779-eeb248b9bebb"
          },
          "UrlPath": "/PaymentResultCommon",
          "LogSource": "B2EUi",
          "LogDate": "2020-01-25T13:01:14.4634937Z",
          "Environment": "Production-K8S"
        }
      },
      {
        "_index": "usereventsreduced-2020",
        "_type": "event",
        "_id": "1V9W3G8BiazbIYmi4uwD",
        "_score": 7.4923043,
        "_source": {
          "UserId": "",
          "SessionId": "",
          "LogLevel": "Error",
          "CorrelationId": "959d767d-cd66-4878-a5ca-e8e887aeec95",
          "UrlMethod": "GET",
          "Data": "",
          "UrlQueryString": {
            "b": "ce5cb7ed-280d-419a-9906-25004b799750",
            "t": "e05879ec-668b-41dc-9b77-09072ab62ef4"
          },
          "UrlPath": "/PaymentCallBack",
          "LogSource": "B2EUi",
          "LogDate": "2020-01-25T10:53:39.2500748Z",
          "Environment": "Production-K8S"
        }
      },
      {
        "_index": "usereventsreduced-2020",
        "_type": "event",
        "_id": "_YDh528BiazbIYmiU_nH",
        "_score": 7.4923043,
        "_source": {
          "UserId": "",
          "SessionId": "",
          "LogLevel": "Error",
          "CorrelationId": "6417519f-6f61-496d-8eba-3dd32b5c1ddf",
          "UrlMethod": "GET",
          "Data": "",
          "UrlQueryString": {
            "b": "eef54432-df76-40f4-9a7b-aa447b20eb27",
            "t": "97d3734c-203f-48a4-ac9f-77d575528121"
          },
          "UrlPath": "/PaymentCallBack",
          "LogSource": "B2EUi",
          "LogDate": "2020-01-27T16:40:51.0060448Z",
          "Environment": "Production-K8S"
        }
      }
    ]
  }
}

但是下面的代码不起作用,因为我必须用嵌套对象描述我的方法。 UrlQueryString是一个嵌套的。
{
    "query": {
        "nested" : {
            "path" : "UrlQueryString",
            "query" : {
                "bool" : {
                    "must" : [
                    { "match" : {"UrlQueryString.parameter" : "grand-urfa-hotel"} }
                    ]
                }
            }
        }
    }
}

我的映射代码:
PUT /usereventsreduced-*/_mapping/event
{
    "mappings" : {
        "properties" : {
            "UrlQueryString" : {
                "type" : "nested"
            }
        }
    }
}

结果:
{
  "error": {
    "root_cause": [
      {
        "type": "mapper_parsing_exception",
        "reason": "Root mapping definition has unsupported parameters:  [mappings : {properties={UrlQueryString={type=nested}}}]"
      }
    ],
    "type": "mapper_parsing_exception",
    "reason": "Root mapping definition has unsupported parameters:  [mappings : {properties={UrlQueryString={type=nested}}}]"
  },
  "status": 400
}

最佳答案

注意映射规范的外观:https://prnt.sc/qyhwpu

基于此,您可以使用:

DELETE usereventsreduced
PUT /usereventsreduced-*/
{
  "mappings": {
    "event": {
      "properties": {
        "UrlQueryString": {
          "type": "nested"
        }
      }
    }
  }
}

要么
PUT /usereventsreduced-*/event/_mapping
{
  "properties": {
    "UrlQueryString": {
      "type": "nested"
    }
  }
}

关于dataframe - 如何通过使用嵌套属性创建的Elasticsearch索引解决Root映射定义的参数不受支持的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60097607/

相关文章:

python - 在函数内追加 Pandas 中的数据框

python - map 功能花费太多时间(Pandas DataFrame)

elasticsearch - Elastic Search query_shard_exception无法在日期时间字段执行查询

elasticsearch - ELK 5.3上的Lucene语法

scala - 如何在 Apache Spark 2.3.1 中映射/转换 ArrayType 中的每个元素

python - 在数据框列的多个位置插入字符

angularjs - 跨链接的 Docker 容器发出 http 请求时出错

angular - 用Elasticsearch在Angular中搜索

elasticsearch - Kibana Watcher查询以搜索文本

elasticsearch - Timelion多次 split