2013-03-14 1 views
13

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

ответ

16

Да, вы можете!

Проверено на 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}}]} 
+0

Можете ли вы предоставить образец JAVA API для той же операции по сценарию ? –

+0

Спасибо, @dadoonet. Возможно ли обновить несколько документов без указания идентификатора? – Harshit

+0

Не с объемным API. Обновление по запросу может быть тем, что вы хотите. – dadoonet

1

Вот еще один пример массовой загрузки без указания _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 
     } 
    } 
    ] 
} 

`