elasticsearch,drupal,Php,elasticsearch,Drupal" /> elasticsearch,drupal,Php,elasticsearch,Drupal" />

Elasticsearch:php变量进入查询

Elasticsearch:php变量进入查询,php,elasticsearch,drupal,Php,elasticsearch,Drupal,我有一个有效的查询。但是我想用一个php变量替换一个部分,所以问题是它是一个数组,而查询不起作用 此查询可用于: ...[query] => Array ( [filtered] => Array ( [query] => Array (

我有一个有效的查询。但是我想用一个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']
                        ]
                    ]
             );
然后,您需要像这样编写新查询(即在
过滤后不使用方括号):


为什么
$querytitle
变量包含字符串而不是简单地包含关联数组?是的,我已经尝试过使用“array()”。但它是一样的:[过滤]=>Array([0]=>Array([query]=>…那是因为你需要这样写你的新查询,在
过滤后没有方括号,请看我的更新答案是的!但是在查询结束时缺少方括号,因此它不起作用。当然,如果你删除开始方括号,你需要删除结束方括号。哦,我真的很抱歉我的疲惫和小关系埃文没有回答!我的要求很复杂,但我成功了。谢谢你的建议。再次非常感谢你。
'query' => [
    'filtered' => $querytitle,
        ...