繁体   English   中英

Elasticsearch:将php变量查询

[英]Elasticsearch : php variable into query

我有一个有效的查询。 但是我想用一个php变量替换一个部分,所以问题是生成了一个数组,查询不起作用。

该查询有效:

...[query] => Array
            (
                [filtered] => Array
                    (
                        [query] => Array
                            (
                                [multi_match] => Array
                                    (
                                        [query] => Baden-Powell
                                        [fields] => Array
                                            (
                                                [0] => title
                                                [1] => field_auteur
                                                [2] => body:value
                                            )

                                    )

                            )

                        ...

该字段可以为空,所以我想用这样的变量替换这部分[query] [multi_match]:

'query' => [
        'filtered' => [
            $querytitle,
            ...

和$ querytitle =

$querytitle= "'query' => [
                        'multi_match' => [
                            'query' => $SearchSimple,
                            'fields' => ['title', 'field_auteur', 'body:value']
                            ]
                        ],
                    ";
or $querytitle="";

生成的代码是:

[query] => Array
            (
                [filtered] => Array
                    (
                        [0] => 'query' => [
                        'multi_match' => [
                            'query' => Baden-Powell,
                            'fields' => ['title', 'field_auteur', 'body:value']
                            ]
                        ],

问题是“查询”之前的“数组[0]”。 我如何整合我的变量$ querytitle,使请求有效? 谢谢你的帮助

问题出在以下事实: $querytitle变量包含一个字符串而不是仅包含一个关联数组。

尝试像这样:

$querytitle = Array('query' => [
                    'multi_match' => [
                        'query' => $SearchSimple,
                        'fields' => ['title', 'field_auteur', 'body:value']
                        ]
                    ]
             );

然后,您需要像这样编写新查询(即, filtered后不带方括号):

'query' => [
    'filtered' => $querytitle,
        ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM