Elasticsearch查询不带变量?

时间:2015-08-11 15:02:37

标签: elasticsearch

动态值或变量在 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'
               }
           }
       }
    }';

有谁知道我在哪里弄错了。

任何建议都会有很大帮助。谢谢你提前。

1 个答案:

答案 0 :(得分:1)

如果这是PHP,则字符串连接存在问题:

$a = 1000;
$b = 11100;

$json = '{
   "query" : {
       "range" : {
           "productId" : {
               "from" : '.$a.',
               "to" : '.$b.'
           }
       }
   }
}';

查看变量周围的点。

如果你自己运行原始代码片段,PHP解析器应该给你一个解析错误。