2014-05-31 3 views
2

Я только начинаю использовать ElasticSearch. И я попытался понять, как вставлять документы. Я нашел примеры только с использованием метода PUT: $ curl -XPUT 'http://localhost:9200/...' Но он также работает с использованием POST. Есть ли разница между этими двумя методами?Разница между XPOST и XPUT

Спасибо.

ответ

5

Обычно при использовании REST API:
- POST используется для создания ресурса, на котором сервер будет выбирать идентификатор.
- PUT используется для обновления или размещения ресурса с помощью известного идентификатора.

Doc creation examples in the ES documentation show the caller picking an ID.

Как так:

curl -XPUT 'http://localhost:9200/twitter/tweet/1' -d '{ 
    "user" : "kimchy", 
    "post_date" : "2009-11-15T14:12:12", 
    "message" : "trying out Elasticsearch" 
}' 

Поскольку абонент набирает идентификатор пута кажется здесь уместно.

НО

с помощью POST Elasticsearch также может генерировать идентификатор для вас.

$ curl -XPOST 'http://localhost:9200/twitter/tweet/' -d '{ 
    "user" : "kimchy", 
    "post_date" : "2009-11-15T14:12:12", 
    "message" : "trying out Elasticsearch" 
}' 
+0

Могу ли я «POST» с известным идентификатором? Подобно этому 'curl -XPOST 'http: // localhost: 9200/twitter/tweet/1' -d '{ « пользователь »:« кимчы », « post_date »:« 2009-11-15T14: 12: 12 » , "сообщение": "опробовать Elasticsearch" } '' – DerekY

0

Какого-то образом они имеют одинаковую функциональность с небольшим различным

PUT глагола («хранить этот документ по этому адресу»)

ПОСТ глагола («хранить этот документ под этим URL»)

В полевых условиях вы должны указать точный URL-адрес, но в сообщении вы можете установить документ только по типу

например:

PUT/website/blog/123 говорит, что этот документ указан именно по этому URL-адресу, но POST/веб-сайт/блог будет вставлять документ в блог и автоматически увеличивать идентификатор последнего документа.