Po prostu użyłbym get api, który zwraca 404, jeśli obiekt nie istnieje, w przeciwnym razie sam obiekt. Jeśli korzystasz z interfejsu API Java, znajdziesz metodę isExists
w obiekcie GetResponse
.
Jeśli pole _id
masz na myśli nie jest zawarty w dokumentach, mówiąc fields=_id
nie oddać albo _source
ani specyficzne pole pod fields
. Ale i tak otrzymasz zwrot _id
w nagłówku odpowiedzi.
Jeśli używasz API REST można użyć następujących:
curl -XHEAD 'http://localhost:9200/twitter/tweet/1
nie wróci dokument z powrotem, ale tylko jeśli nie znaleziono 404, 200 inaczej. Ciało odpowiedzi będzie zawierało również flagę "istnieje" o tym samym znaczeniu.
Co ciekawe jest to, że przy użyciu metody HEAD mapy na zamówienie Pobierz wewnętrznie, dlatego nie jest bezpośrednio narażony na Java API, ale można uzyskać takie samo zachowanie tworząc GetRequest
z następującego kodu:
GetRequest getRequest = new GetRequest("index", "type", "id");
// don't get any fields back...
getRequest.fields(new String[0]);
https://www.elastic.co/guide/en/elasticsearch/guide/current/doc-exists.html – coderz