动态值或变量在 elasticsearch“范围”查询中无效。
为了解释更多这是一个弹性搜索范围查询,它找到了1000到11100之间的productId,这是完美的工作---
$json = '{
"query" : {
"range" : {
"productId" : {
"from" : '1000',
"to" : '11100'
}
}
}
}';
另一方面,对具有相同值的变量使用相同的查询,它会返回错误,如---
{“error”:“SearchPhaseExecutionException [无法执行阶段[查询],所有分片都失败; shardFailures
$a =1000;
$b = 11100;
$json = '{
"query" : {
"range" : {
"productId" : {
"from" : '$a',
"to" : '$b'
}
}
}
}';
有谁知道我在哪里弄错了。
任何建议都会有很大帮助。谢谢你提前。
答案 0 :(得分:1)
如果这是PHP,则字符串连接存在问题:
$a = 1000;
$b = 11100;
$json = '{
"query" : {
"range" : {
"productId" : {
"from" : '.$a.',
"to" : '.$b.'
}
}
}
}';
查看变量周围的点。
如果你自己运行原始代码片段,PHP解析器应该给你一个解析错误。