I am setting a Bulk request to ElasticSearch and specifying the shard to route to.
But when I run it, the documents get sent to different shards.
Is this a bug i
@Henley Chiu has given the correct answer, I add one detail:
_routing or routing field for each individual document when bulkroutingSo, you'd better use routing for better future compatibility.
So adding the "routing" parameter to the end of the URL doesn't work.
I need to add the "_routing" field to the actual document fields to specify which shard it will go to.
Very unintuitive, and I wish ElasticSearch would've documented this! Sometimes I wish I just chose Solr :*(
Hope this helps anyone else looking for this in the future
curl -XPOST 'http://192.168.1.115:9200/_bulk?routing=a' -d '
{ "index" : { "_index" : "articles", "_type" : "article", "_id" : "1", "_routing" : "b"} }
{ "title" : "value1" }
{ "delete" : { "_index" : "articles", "_type" : "article", "_id" : "2", "_routing" : "b" } }
{ "create" : { "_index" : "articles", "_type" : "article", "_id" : "3", "_routing" : "b" } }
{ "title" : "value3" }
{ "update" : {"_id" : "1", "_type" : "article", "_index" : "index1", "_routing" : "b"} }
{ "doc" : {"field2" : "value2"} }'