невозможно вернуть уникальные данные из эластичного поиска - PullRequest
0 голосов
/ 11 февраля 2019
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
                                )

                        )

                )

        )

)

приведенный выше код - это то, что я использую, и запрос возвращает все строки без учета отдельного фильтра для field5.how использовать агрегацию в запросе, чтобы он возвращал уникальные данные в зависимости от поля5.кроме агрегации есть ли другие способы использовать отличную операцию вasticsearch.

1 Ответ

0 голосов
/ 11 февраля 2019

Нет, вы должны использовать агрегацию.Но если вам нужен только последний (или один) документ каждого значения field5, вы можете использовать field5 в качестве ключа и обновить его вместо получения дубликата.Конечно, это зависит от вашего контекста ...

...