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

Php ElasticSearch-如何从非空值的ElasticSearch返回数据?

Php ElasticSearch-如何从非空值的ElasticSearch返回数据?,php,elasticsearch,Php,elasticsearch,我在从我的一个索引的文档中删除空值时遇到了一个问题 $params = [ "scroll" => "30s", // how long between scroll requests. should be small! "size" => 1, "index" => $eddIndex, 'type' => $eddIndexType ]; $response = $client->search ( $params );

我在从我的一个索引的文档中删除空值时遇到了一个问题

$params = [ 
    "scroll" => "30s", // how long between scroll requests. should be small!
    "size" => 1, 
    "index" => $eddIndex,
    'type' => $eddIndexType
 ];
 $response = $client->search ( $params );

 while ( isset ( $response ['hits']['hits'] ) && count ( $response['hits']['hits'] ) > 0 ) {
 $scroll_id = $response ['_scroll_id'];
 $response = $client->scroll ( [ 
        "scroll_id" => $scroll_id,
        "scroll" => "30s" 
] )
;
这会回来的

 Array
(
[_scroll_id] => cXVlcnlUaGVuRmV0Y2g7NTs0NTY0NDM6di1Bd2x4X0ZSaTJ5cnpVUkFHb3FRdzs0NTY0NDQ6di1Bd2x4X0ZSaTJ5cnpVUkFHb3FRdzs0NTY0NDY6di1Bd2x4X0ZSaTJ5cnpVUkFHb3FRdzs0NTY0NDc6di1Bd2x4X0ZSaTJ5cnpVUkFHb3FRdzs0NTY0NDU6di1Bd2x4X0ZSaTJ5cnpVUkFHb3FRdzswOw==
[took] => 12
[timed_out] => 
[_shards] => Array
    (
        [total] => 5
        [successful] => 5
        [failed] => 0
    )

[hits] => Array
    (
        [total] => 378887
        [max_score] => 1
        [hits] => Array
            (
                [0] => Array
                    (
                        [_index] => index
                        [_type] => edd
                        [_id] => 13038
                        [_score] => 1
                        [_source] => Array
                            (
                                [reason] => 
                                [booking_date] => 2013-05-03T18:30:00.000Z
                                [booking_location] => ABC
                                [scan_edd] => 
                                [call_status] => Call
                                [patient_name] => ABCD
                                [@version] => 1
                                [effective_edd] => 
                                [id] => 13038
                                [email] => xxxxxxxxx@gmail.com
                                [last_known_edd] => 
                                [booking_amount] => 8000
                                [address] => xxxxxxxxxxxxxxxxx
                                [eda] => 2013-09-09T18:30:00.000Z
                                [edd] => 
                                [mpi] => xxxxxxx
                                [mobile] => xxxxxxx
                                [statuss] => Open Payment
                                [tags] => Array
                                    (
                                        [0] => edd
                                    )

                                [last_consult_by] => Dr. XXXX                                    [site] => BLR
                                [@timestamp] => 2018-07-06T06:30:39.040Z
                                [patient_id] => 75220
                                [last_consult_on] => 2014-02-28T18:30:00.000Z
                                [ip_booking] => XYX Package
                                [is_converted] => 0
                            )

                    )

            )

    )

 )
如果查看我的输出,有一个字段[effective_edd]返回空

我想返回[effective_edd]不为空的数据


我指的是以下文档

您需要在滚动请求中添加一个查询:

$params = [ 
    "scroll" => "30s", // how long between scroll requests. should be small!
    "size" => 1, 
    "index" => $eddIndex,
    'type' => $eddIndexType,
    'body' => [
        'query' => [
            'exists' => [
                'field' => 'effective_edd'
            ]
        ]
    ]
];

谢谢为我工作。请提供链接以参考搜索详细信息。很高兴它有帮助。用相关链接更新了我的答案再次感谢您的帮助