Eka*_*yas 30 document field exists elasticsearch
可能是一个非常愚蠢的问题,检查elasticsearch中的文档字段是否存在的最佳方法是什么?我在文档中找不到任何内容.
例如,如果此文档没有字段/键"价格",我不想在结果中返回.
{"更新":"2015/09/17 11:27:27","名称":"眼影","格式":"1.5克/0.05盎司",}
我可以做什么?
谢谢
Val*_*Val 44
您可以将exists
过滤器与bool/must
过滤器结合使用,如下所示:
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"exists": {
"field": "price"
}
},
... <-- your other constraints, if any
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
DEPRECATED(自ES5起)您还可以使用missing
过滤器结合bool/must_not
过滤器:
{
"query": {
"filtered": {
"filter": {
"bool": {
"must_not": [
{
"missing": {
"field": "price"
}
}
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Dev*_*evi 11
该exists
过滤器已取代exists
查询从ES 2.1,但它的工作是一样的.此外,删除了丢失的过滤器,并且不推荐使用丢失的查询.
要获得具有特定字段的所有文档,
"bool": {
"must": {
"exists": {
"field": "my_field"
}
}
}
Run Code Online (Sandbox Code Playgroud)
并获得不具有某一领域的所有文档,与使用must_not
这样的
"bool": {
"must_not": {
"exists": {
"field": "my_field"
}
}
}
Run Code Online (Sandbox Code Playgroud)
弹性文档:https://www.elastic.co/guide/en/elasticsearch/reference/2.3/query-dsl-missing-query.html
Sur*_*hit 10
你可以直接做
{
"query": {
"exists": {
"field": "fieldName"
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想添加一些比赛,那么你可以去
{
"query": {
"bool": {
"must": [{
"match": {
"fieldName": "value"
}
},
{
"exists": {
"field": "fieldName"
}
}]
}
}
}
Run Code Online (Sandbox Code Playgroud)
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-exists-query.html
小智 9
您可以使用exists过滤器:
{
"query": {
"filtered": {
"filter": {
"exists": {
"field": "status"
}
},
"query": {
"match_all": {}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
此致,阿兰
GET /_search
{
"query": {
"exists" : { "field" : "price" }
}
}
Run Code Online (Sandbox Code Playgroud)
来源:https ://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-exists-query.html
归档时间: |
|
查看次数: |
49491 次 |
最近记录: |