elasticsearch,Php,elasticsearch" /> elasticsearch,Php,elasticsearch" />

Php 处理空值

Php 处理空值,php,elasticsearch,Php,elasticsearch,在elasticsearch中,我试图从字段缺失或为空的特定字段中获取值 我正在这样努力--- 我得到的输出如下--- 但是聚合返回所有文档,它只返回计数,但我需要所有缺少该字段的文档,而不仅仅是计数 是否有人知道如何解决此问题。根据$results数组/数据集中行的数据类型,您可以执行以下操作: foreach ($results as $result) { //In case if $result is an object if (isset ($result->cat

在elasticsearch中,我试图从字段缺失或为空的特定字段中获取值

我正在这样努力---

我得到的输出如下---

但是聚合返回所有文档,它只返回计数,但我需要所有缺少该字段的文档,而不仅仅是计数


是否有人知道如何解决此问题。

根据$results数组/数据集中行的数据类型,您可以执行以下操作:

foreach ($results as $result) {
    //In case if $result is an object
    if (isset ($result->category) == FALSE || is_null($result->category)) {
        //Do something here as category does not exist
    }
    //In case if $result is an associative array
    if (isset ($result['category']) == FALSE || is_null($result['category'])) {
        //Do something here as category does not exist
    }
}

如果您希望在不使用php代码的情况下将结果聚合为missing/not_missing:

{
  "query": {
    "filtered": {
      "filter": {
        "missing": {
          "field": "category"
        }
      }
    }
  }, 
  "aggs": {
    "miss": {
      "missing": {
        "field": "category"
      }
    },
    "not_miss": {
      "filter": {
        "exists": {
          "field": "category"
        }
      }
    }
  }
}
或者,如果您希望查询返回“缺失”类别,但希望聚合同时计算缺失类别和未缺失类别,请执行此操作(使用忽略初始查询结果的
全局
聚合):

如果只需要缺少的类别,则不需要聚合:

{
  "query": {
    "filtered": {
      "filter": {
        "missing": {
          "field": "category"
        }
      }
    }
  }
}

可以在聚合本身中显示“某些”文档,但不能显示所有文档。节点将承受非常高的压力。

Hi,是elasticsearch客户端API返回的数据有问题还是关于如何处理缺少值的结果?为什么投票被否决,请解释原因!我们都会犯新手错误。我不知道是谁投了反对票,但如果我是你,我不会把它当成个人问题。@Jinksy这是如何处理结果的values@Anderi我已经更新了我的问题,你能看一下吗please@Anderi非常感谢您的回答,但它仍然返回计数,而不是所有的文件,我已经更新了问题,向您展示了输出,谢谢lot@ChristoferHansen请尝试我答案中的最后一个问题。@Anderi非常感谢:),再次感谢您的大力帮助
{
  "query": {
    "filtered": {
      "filter": {
        "missing": {
          "field": "category"
        }
      }
    }
  }, 
  "aggs": {
    "miss": {
      "missing": {
        "field": "category"
      }
    },
    "not_miss": {
      "filter": {
        "exists": {
          "field": "category"
        }
      }
    }
  }
}
{
  "query": {
    "filtered": {
      "filter": {
        "missing": {
          "field": "category"
        }
      }
    }
  },
  "aggs": {
    "allDocs": {
      "global": {},
      "aggs": {
        "miss": {
          "missing": {
            "field": "category"
          }
        },
        "not_miss": {
          "filter": {
            "exists": {
              "field": "category"
            }
          }
        }
      }
    }
  }
}
{
  "query": {
    "filtered": {
      "filter": {
        "missing": {
          "field": "category"
        }
      }
    }
  }
}