【问题标题】:Elasticsearch : Expected field name but got START_OBJECT "more_like_this"Elasticsearch:预期的字段名称,但得到 START_OBJECT “more_like_this”
【发布时间】:2018-05-02 21:57:40
【问题描述】:

我的所有 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
                        )

                )

        )

)

【问题讨论】:

  • more_like_this 应该位于您的 must 数组中
  • 你说得对,非常感谢!

标签: elasticsearch


【解决方案1】:

找到答案(感谢@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
                                                        )

                                                )

                                        )

                                )

                        )

                )

        )

)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    • 2022-08-14
    • 2020-06-28
    相关资源
    最近更新 更多