Как решить, что определение сопоставления Root имеет неподдерживаемые параметры, используя вложенное свойство для созданного индекса эластичного поиска? - PullRequest
0 голосов
/ 06 февраля 2020

Как я могу создать структуру отображения, используя вложенное свойство для созданного индекса? Я получил ошибку ниже. Этот URL дает следующий результат: 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"
        }
      }
    ]
  }
}

Но приведенный ниже код не работает, потому что я должен описать мое paping с вложенным объектом. 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
}

1 Ответ

1 голос
/ 06 февраля 2020

Обратите внимание на то, как выглядит спецификация отображения c: https://prnt.sc/qyhwpu

Исходя из этого, вы можете использовать это:

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

ИЛИ

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