Ошибка эластичного поиска mapper_parsing_exception - PullRequest
0 голосов
/ 10 мая 2019

Я создал индекс в упругом поиске с проверкой имени. Отображение индекса выглядит следующим образом:

{
    "title": {
        "type": "text",
        "fields": {
            "raw": {
                "type": "keyword"
            }
        }
    },
    "url": {
        "type": "text",
        "fields": {
            "raw": {
                "type": "keyword"
            }
        }
    }
}

после создания индекса я добавил в него следующие документы:

 {
    "title": "demo",
    "url": {
        "name": "tiger",
        "age": 10
    }
}

Но я получаю следующую ошибку:

{"mapper_parsing_exception", "reason": "не удалось проанализировать поле [url] из введите [текст] "}

Может кто-нибудь помочь мне в этом?

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Привет. Вам нужно создать отображение следующим образом:

PUT test
{
    "settings" : {
        "number_of_shards" : 1
    },
    "mapping": {
    "title": {
      "type": "text",
      "fields": {
        "raw": {
          "type": "keyword"
        }
      }
    },
    "url": {
      "type": "text",
      "fields": {
        "raw": {
          "type": "keyword"
        }
      }
    }
  }
} 

И документ

put test/doc/1
{
    "title": "demo",
    "url": {
        "name": "tiger",
        "age": 10
    }
}


GET test/doc/1

И результат

{
  "_index" : "test",
  "_type" : "doc",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "title" : "demo",
    "url" : {
      "name" : "tiger",
      "age" : 10
    }
  }
}
0 голосов
/ 10 мая 2019

Если ваши документы выглядят так:

{
    "title": "demo",
    "url": {
        "name": "tiger",
        "age": 10
    }
}

Тогда ваше отображение должно выглядеть следующим образом, то есть url - это объект с полями name и age:

{
  "title": {
    "type": "text",
    "fields": {
      "raw": {
        "type": "keyword"
      }
    }
  },
  "url": {
    "properties": {
      "name": {
        "type": "text",
        "fields": {
          "raw": {
            "type": "keyword"
          }
        }
      },
      "age": {
        "type": "integer"
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...