检查elasticsearch中是否存在文档

Sag*_*ela 5 elasticsearch

我想检查elasticsearch中是否存在具有特定字段值的文档。

我浏览了互联网,但只找到了如何检查字段是否存在的方法。

我的索引/类型是

/twitter/user
Run Code Online (Sandbox Code Playgroud)

用户名是文档中的一个字段。

我想检查username="xyz"此类型中是否存在。

xra*_*age 10

您可以使用 size 进行查询0totalvalue 会让你知道 doc 是否存在。

GET /twitter/user/_search
{"size": 0,
  "query": {"match": {
  "username": "xyz"
}}}
Run Code Online (Sandbox Code Playgroud)

编辑——

_count api can be used as well.

GET /twitter/user/_count
{ "query": {"match": {
  "username": "xyz"
}}}
Run Code Online (Sandbox Code Playgroud)


Abr*_* TS 5

文档

如果您只想检查文档是否存在——您对内容根本不感兴趣——那么请使用HEAD方法而不是GET方法。HEAD请求不返回正文,只返回 HTTP 标头:

curl -i -XHEAD http://localhost:9200/twitter/user/userid
Run Code Online (Sandbox Code Playgroud)

200 OK如果文档存在,Elasticsearch 将返回一个状态码……404 Not Found如果它不存在,则返回一个状态码

注: userid_id字段的值。