#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 у вас нет возможности узнать.