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