Elasticsearch: ожидаемое имя поля, но получило START_OBJECT "more_like_this" - PullRequest
0 голосов
/ 02 мая 2018

Все мои запросы Elasticsearch работают нормально, кроме случаев, когда я использую функцию «more_like_this», я всегда получаю «Ожидаемое имя поля, но получаю START_OBJECT« more_like_this »» ошибку.

Вот мой "массив" с обычным запросом: (работает нормально)

Array
(
    [index] => videos
    [from] => 0
    [size] => 75
    [body] => Array
        (
            [query] => Array
                (
                    [bool] => Array
                        (
                            [must] => Array
                                (
                                    [0] => Array
                                        (
                                            [match] => Array
                                                (
                                                    [gender] => 1
                                                )

                                        )

                                    [1] => Array
                                        (
                                            [match_phrase] => Array
                                                (
                                                    [title] => my super title
                                                )

                                        )

                                    [2] => Array
                                        (
                                            [range] => Array
                                                (
                                                    [date] => Array
                                                        (
                                                            [lte] => 1525258744
                                                        )

                                                )

                                        )

                                )

                        )

                )

            [sort] => Array
                (
                    [date] => Array
                        (
                            [order] => desc
                        )

                )

        )

)

А вот вариант с параметром more_like_this: (который не работает)

Array
(
    [index] => videos
    [from] => 0
    [size] => 75
    [body] => Array
        (
            [query] => Array
                (
                    [bool] => Array
                        (
                            [must] => Array
                                (
                                    [0] => Array
                                        (
                                            [match] => Array
                                                (
                                                    [gender] => 1
                                                )

                                        )

                                    [1] => Array
                                        (
                                            [range] => Array
                                                (
                                                    [date] => Array
                                                        (
                                                            [lte] => 1525258700
                                                        )

                                                )

                                        )

                                )

                        )

                    [more_like_this] => Array
                        (
                            [fields] => Array
                                (
                                    [0] => title
                                )

                            [like_text] => my super title
                            [min_term_freq] => 1
                            [max_query_terms] => 12
                        )

                )

        )

)

1 Ответ

0 голосов
/ 02 мая 2018

Найден ответ (спасибо @Val), more_like_this должен быть частью массива must:

Array
(
    [index] => videos
    [from] => 0
    [size] => 75
    [body] => Array
        (
            [query] => Array
                (
                    [bool] => Array
                        (
                            [must] => Array
                                (
                                    [0] => Array
                                        (
                                            [match] => Array
                                                (
                                                    [gender] => 1
                                                )

                                        )

                                    [1] => Array
                                        (
                                            [more_like_this] => Array
                                                (
                                                    [fields] => Array
                                                        (
                                                            [0] => title
                                                        )

                                                    [like_text] => my super title
                                                    [min_term_freq] => 1
                                                    [max_query_terms] => 12
                                                )

                                        )

                                    [2] => Array
                                        (
                                            [range] => Array
                                                (
                                                    [date] => Array
                                                        (
                                                            [lte] => 1525269403
                                                        )

                                                )

                                        )

                                )

                        )

                )

        )

)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...