无法从Elasticsearch返回唯一数据

时间:2019-02-11 12:08:03

标签: elasticsearch elasticsearch-aggregation

Array
(
    [index] => index_db,
    [type] => data
    [size] => 10
    [from] => 0
    [body] => Array
        (
            [query] => Array
                (
                    [query_string] => Array
                        (
                            [query] => search_this_data
                            [default_operator] => AND
                            [fields] => Array
                                (
                                    [0] => field1
                                    [1] => field2
                                )
                        )
               )
            [sort] => Array
                (
                    [field3_date] => Array
                        (
                            [order] => desc
                            [ignore_unmapped] => 1
                        )

                    [field4_name] => Array
                        (
                            [order] => desc
                            [ignore_unmapped] => 1
                        )

                )

            [aggs] => Array
                (
                    [unique_data] => Array
                        (
                            [terms] => Array
                                (
                                    [field] => field5
                                )

                        )

                )

        )

)

上面的代码是iam使用的代码,查询返回所有行,而没有考虑field5的不同过滤器。如何在查询中使用聚集规则,以便它应根据field5返回唯一数据。除了聚合之外,还有其他方法可以在Elasticsearch中使用不同的操作。

1 个答案:

答案 0 :(得分:0)

否,您不必使用聚合。但是,如果只需要每个field5值的最后一个(或一个)文档,则可以将field5用作键并对其进行更新,而不是获取重复数据。当然,这取决于您的情况...