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

Php 筛选器查询:弹性搜索中不为空

Php 筛选器查询:弹性搜索中不为空,php,mysql,elasticsearch,Php,Mysql,elasticsearch,目前我正在为我当前的项目进行弹性搜索2.0。MySqL查询如下: 从userswhere subscription\u type!=''中选择user\u id 在上面的这个查询中,我需要在弹性搜索中编写,我正在弹性搜索中尝试,但它得到了支持 请在弹性搜索中查找以下代码 $query = array("from" => $start, "size" => $recordslimit, "sort" => array(array('

目前我正在为我当前的项目进行弹性搜索2.0。MySqL查询如下:

users
where subscription\u type!=''中选择
user\u id

在上面的这个查询中,我需要在弹性搜索中编写,我正在弹性搜索中尝试,但它得到了支持 请在弹性搜索中查找以下代码

$query = array("from" => $start,
            "size" => $recordslimit,
            "sort" => array(array('id' => 'desc')),
            "query" => array(
                "filtered" => array(
                    "query" => array("match_all" => array()),
                    "filter" => array("bool" => array(
                            'must_not' => array(
                                array('term' => array('subscription_type' => ''))
                            )))
        )));

请帮我解决这个问题

我看到两种可能的情况:

如果订阅类型为null或未出现在文档中,则可以在
must\u not
子句中使用而不是术语查询


另一方面,如果要排除那些
subscription\u type
字段中包含空字符串的文档,则查询是正确的,但映射可能不是。确保在映射中将
subscription\u type
定义为
未分析的

查看我的答案,可能会有所帮助。只是提醒一下,如果您发布地图和一小部分文档,以便我们重现您的问题,我们将更容易帮助您。