Можем ли мы сделать массовый индекс без указания идентификатора документа для Elasticsearch?

Можно ли сделать массовый индекс без указания идентификатора документа? Я хочу, чтобы Elasticsearch генерировал случайный идентификатор для меня при индексировании, но можно ли это сделать?

Ответ 1

Да, ты можешь!

Протестировано на 0.90.0.Beta1:

$ cat requests 
{ "index" : { "_index" : "test", "_type" : "type1" } }
{ "field1" : "value1" }

$ curl -s -XPOST localhost:9200/_bulk --data-binary @requests; echo
{"took":6,"items":[{"create":{"_index":"test","_type":"type1","_id":"IWqsRqyhRVq-F69OLIngTA","_version":1,"ok":true}}]}

Ответ 2

Вот еще один пример массовой загрузки без указания _id.

'

curl -XPOST "http://localhost:9200/_bulk" -d'
    { "index" : { "_index" : "test", "_type" : "demo" } }
    { "title" : "Quick brown rabbits", "content" : "Brown rabbits are commonly seen" }
    { "index" : { "_index" : "test", "_type" : "demo" } }
    { "title" : "Keeping pets healthy", "content" : "My quick brown fox eats rabbits

'

Ответ ниже

'

{
  "took": 451,
  "errors": false,
  "items": [
    {
      "create": {
        "_index": "test",
        "_type": "demo",
        "_id": "AVYDtp_fxosF2Bdj7ghV",
        "_version": 1,
        "_shards": {
          "total": 2,
          "successful": 1,
          "failed": 0
        },
        "status": 201
      }
    },
    {
      "create": {
        "_index": "test",
        "_type": "demo",
        "_id": "AVYDtp_fxosF2Bdj7ghW",
        "_version": 1,
        "_shards": {
          "total": 2,
          "successful": 1,
          "failed": 0
        },
        "status": 201
      }
    }
  ]
}

'