Как указать 2 или более документов для индексации в теле запроса POST вasticsearch? - PullRequest
0 голосов
/ 23 октября 2018

Я новичок вasticsearch.Я создал индекс по имени удобства и пытаюсь выполнить запрос POST в инструменте Postman, http://localhost:9200/amenities/test/_bulk.

Здесь тип контента установлен на application / json вместе с ошибкойдает при выполнении запроса.

enter image description here

Здесь он показывает синтаксическую ошибку в JSON.

enter image description here

Я не могу понять, как индексировать более одного объекта JSON (документа).Это работает хорошо, когда у меня указан только один документ, но JSON становится недействительным, когда я указываю два или более.

Я попробовал следующие решения:

{"index": {}} {"тип ":" Кухня "," местоположение ": {" x ": 9881.034723869176," y ": -12942.49413158995}," icon ":" посуда "," category ":" удобства "} {" index ": {}}{"type": "Мусорное ведро", "location": {"x": 9170.444649524274, "y": -12855.890257805067}, "icon": "trash", "category": "Aferences"}

{"index": {"_index": "Facilities", "_type": "test"}} {"type": "Kitchen", "location": {"x": 9881.034723869176, "y": -12942.49413158995}, "icon": "utensils", "category": "Aabilities"} {"index": {"_index": "facilities", "_type": "test"}} {"type": "Мусорная корзина", "location": {"x": 9170.444649524274, "y": -12855.890257805067}, "icon": "trash", "category": "Aferences"}

, что по-прежнему приводит к синтаксической ошибке.

Чего мне не хватает?Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Как указано в комментариях выше, определенно возможно отправить массовый запрос с помощью Postman, его просто нужно правильно отформатировать и отправить в виде необработанного текста, как показано ниже:

enter image description here

Также обратите внимание, что раздел «Заголовки» содержит один заголовок HTTP:

ContentType: application/x-ndjson
0 голосов
/ 23 октября 2018

Вы можете поместить свои документы в файл json в следующем формате (testData.json):

{"index": {"_index": "animals", "_type": "_doc", "_id": 1}}
{"name": "dog"}
{"index": {"_index": "animals", "_type": "_doc", "_id": 2}}
{"name": "cat"}

и использовать curl следующим образом:

curl -s -H "Content-Type: application/x-ndjson" -XPOST localhost:9200/_bulk --data-binary "@testData.json";

ИЛИ, если хотитеиспользовать curl без файла json:

 curl -X POST "localhost:9200/_bulk" -H 'Content-Type: application/json' -d'
{ "index" : { "_index" : "test", "_type" : "_doc", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_type" : "_doc", "_id" : "2" } }
{ "create" : { "_index" : "test", "_type" : "_doc", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_type" : "_doc", "_index" : "test"} }
{ "doc" : {"field2" : "value2"} }'

ИЛИ вы можете использовать кибану, что намного проще.проверьте документы _bulk

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...