首页 > 解决方案 > 如何使用 PHP 在 Elasticsearch 查询中传递斜杠?

问题描述

下面提到的弹性搜索查询如果我们直接点击它就可以正常工作,

{
 "query": {
    "query_string": {
        "query": "\"testtext/123\""
    }
 }
}

在 PHP 数组中如何使用反斜杠传递上述查询。我尝试了下面的代码,它给出了错误响应。

$query = array(
  "query"=>[
    "query_string"=> [
      "query"=>"\".$string."\"
    ]
  ]
);

错误是:

语法错误,意外 '' (T_NS_SEPARATOR)

标签: phpelasticsearch

解决方案


\ 是一个转义字符,你需要转义它本身,否则它会转义第二个",所以 PHP 认为字符串未完成。您需要解决语法错误并确保第二个引号实际上是字符串的一部分,而不是 PHP 分隔符。

实际上最简单的方法是在 PHP 中使用单引号作为字符串分隔符:

$query = array(
  "query"=>[
    "query_string"=> [
      "query"=>'"'.$string.'"'
    ]
  ]
);

推荐阅读