Index document only if it is unique by property

Is there a way to index a document only if it is unique by property name for example.
I already have read about the opType options, but they force me to use ID when I index a document, and I don`t know to. My goal is to write something like this:

elasticClient.index({
index: myIndex,
type: myType,
body: {name: 'TEST1', age: 42}

});

and if a document with name TEST1 already exists, this query to fail somehow.

You can create the ID for the document using the name filed somehow! E.g.

Magical function f(x) -> uuid

f("Gollum") -> 12345
f("Smeagol") -> 12346

So given data d = {'name': 'TEST' ... }, when you do an insert, you can use _id: f(d['name']) and if the d['name']field is duplicate the index will fail as the _id field has to be unique.

Mind you, this will only work for index operation, not update.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.