сопоставление elasticsearch пусто после создания

#elasticsearch #autocomplete

#elasticsearch #автозаполнение

Вопрос:

Я пытаюсь создать индекс автозаполнения для моего elasticsearch, используя тип данных search_as_you_type . Моя первая команда, которую я запускаю,

 curl --request PUT 'https://elasticsearch.company.me/autocomplete' 
 '{
   "mappings": {
       "properties": {
           "company_name": {
               "type": "search_as_you_type"
           },
           "serviceTitle": {
               "type": "search_as_you_type"
           }
       }
   }
}'
 

который возвращает

 {"acknowledged":true,"shards_acknowledged":true,"index":"autocomplete"}curl: (3) nested brace in URL position 18:
{
   "mappings": {
       "properties": etc.the rest of the json object I created}}
 

Затем я переиндексирую, используя

 curl --silent --request POST 'http://elasticsearch.company.me/_reindex?pretty' --data-raw '{
 "source": {
   "index": "existing_index"
 },
 "dest": {
   "index": "autocomplete"
 }
}' | grep "total|created|failures"
 

Я ожидаю увидеть некоторые "total":1000,"created":5 etc, но какой-то ответ от терминала, но я ничего не получаю. Кроме того, когда я проверяю сопоставление моего индекса автозаполнения, выполнив curl -u thething 'https://elasticsearch.company.me/autocomplete/_mappings?pretty' ,
Я получаю пустой результат сопоставления:

 {
  "autocomplete" : {
    "mappings" : { }
  }
}
 

Моя ошибка в создании моего индекса или переиндексации? Я ожидаю, что сопоставления автозаполнения покажут два поля, которые я ищу, то есть: «имя_компании» и «serviceTitle». Есть идеи, как исправить?

Комментарии:

1. Удалите команду grep после вашего переиндексации. Что вы получаете?

2. @Brian Guan: вы получили решение, поскольку я также сталкиваюсь с ним для более старой версии elasticsearch 5.3.0

3. @RPaul На самом деле это была ошибка в моем теле JSON, была дополнительная { Я настоятельно рекомендую делать все это в Postman, чтобы вы могли пропустить все —request или —silent и просто добавить объект json в основную часть postman — там он автоматически обнаружит ошибки в вашем JSON vsв cURL у вас нет возможности узнать.