检查elasticsearch中的文档字段是否存在的最佳方法是什么?我在文档里找不到任何东西。
例如,如果这个文档没有字段/键"price“,我就不想在结果中返回。
{
"updated": "2015/09/17 11:27:27",
"name": "Eye Shadow",
"format": "1.5 g / 0.05 oz",
}我能做些什么?
发布于 2015-10-05 21:07:45
您可以使用
过滤器
与
过滤器
如下所示:
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"exists": {
"field": "price"
}
},
... <-- your other constraints, if any
]
}
}
}
}
}不推荐使用(从ES5开始)
您还可以使用
过滤器
与
过滤器
{
"query": {
"filtered": {
"filter": {
"bool": {
"must_not": [
{
"missing": {
"field": "price"
}
}
]
}
}
}
}
}发布于 2016-07-27 15:07:56
The The The
筛选器已替换为
查询
从ES 2.1开始,尽管它的工作原理是相同的。此外,缺少的筛选器将被删除,并且不推荐使用缺少的查询。
为了获取具有特定字段的所有文档,
"bool": {
"must": {
"exists": {
"field": "my_field"
}
}
}要获取没有特定字段的所有文档,请将其与
像这样
"bool": {
"must_not": {
"exists": {
"field": "my_field"
}
}
}弹性文档:
https://www.elastic.co/guide/en/elasticsearch/reference/2.3/query-dsl-missing-query.html
发布于 2017-06-21 19:50:32
您可以直接执行以下操作
{
"query": {
"exists": {
"field": "fieldName"
}
}
}如果你也想添加一些匹配,那么你可以去
{
"query": {
"bool": {
"must": [{
"match": {
"fieldName": "value"
}
},
{
"exists": {
"field": "fieldName"
}
}]
}
}
}https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-exists-query.html
https://stackoverflow.com/questions/32949321
复制相似问题