php - 过滤查询 : Not null in elastic search

标签 php mysql elasticsearch

目前我正在为我当前的项目开发 Elastic Search 2.0。 MySqL查询如下,

users 中选择 user_id,其中 subscription_type ! = ''

在上面的查询中,我需要在 Elastic Search 中编写,我正在尝试在 Elastic Search 中,但它越来越 请在 Elasticsearch 中找到以下代码

$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' => ''))
                            )))
        )));

请帮我解决这个问题

最佳答案

我看到两种可能的情况:

如果订阅类型为空或未出现在您的文档中,那么您可以使用 missing query而不是 must_not 子句中的术语查询。

另一方面,如果您想排除那些 subscription_type 字段包含空字符串的文档,那么您的查询是正确的,但您的映射可能不正确。确保 subscription_type 在映射中定义为 not_analyzed

关于php - 过滤查询 : Not null in elastic search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33969969/

相关文章:

javascript - 使用 Javascript 访问 PHP 变量

php - 使用 MySQLi 检查用户名是否已存在

MySQL ORDER BY,使用列 mod_time,但如果 mod_time 为 0,则使用列 create_time

json - 更新映射对我的索引不起作用(elasticsearch 1.4)

elasticsearch - 我在哪里可以找到 elasticsearch DSL 的正式定义?

php - 如何使用存储库模式来处理复杂的读取(SELECT)?

php - MySql 根据查询结果确定行偏移

Mysql RAND() 函数基于其他一些值

mysql - 在 MySQL 数据库之间同步一张表

elasticsearch - ElasticSearch/Kibana:如何汇总相似类型的页面