php客户端中的弹性搜索查询错误 [英] elasticsearch bool query error in php client

查看:84
本文介绍了php客户端中的弹性搜索查询错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

ElasticSearch返回我 [_ na]查询格式错误,尝试使用以下查询查找条目后,start_object 后无字段。现场本地时间是一个新的文档,并存在于每个文档中。

ElasticSearch returns me [_na] query malformed, no field after start_object error when trying to look up entries using the following query. The field localtime is a new field of documents and exist in every document.

php代码

$qryurl = '<myurl>:<myport>/index/_search?pretty';
$data = array(
"query" => array(
  "bool" => array(
    "must" => array(
      "range" => array(
        "localtime" => array(
          "from" => "2016-06-15T17:43:04.923Z",
          "to" => "2016-06-17T17:43:04.923Z",
          "include_lower" => "true",
          "include_upper" => "true"
        )
      ),
      "term" => array(
        "query" => "1.2.3.4",
        "fields" => array("ip")
      ),
      "query_string" => array(
        "query" => "*up*",
        "default_field" => array("_all")
      )
    )
  )
);

为什么错误出现?


anyhelp将不胜感激!谢谢!


anyhelp will be appreciated ! thanks!

推荐答案

您的 bool / must 子句必须是纯数组而不是关联数组:

Your bool/must clause must be a pure array not an associative array:

$qryurl = '<myurl>:<myport>/index/_search?pretty';
            $data = array(
                "query" => array (
                    "bool" => array (
                      "must" => array(
                          array(
                             "range" => array ( 
                                  "localtime"  => array (
                                      "from" =>"2016-06-15T17:43:04.923Z",
                                       "to" => "2016-06-17T17:43:04.923Z",
                                       "include_lower" => "true",
                                       "include_upper" => "true"
                                  )
                             )
                          ),
                          array(
                              "term" => array(
                                  "ip" => "1.2.3.4"
                              )
                          ),
                          array(
                              "query_string" => array(
                                  "query" => "*up*",
                                  "default_field" => "_all"
                              )
                          )
                      )
                    )

        )
    );

这篇关于php客户端中的弹性搜索查询错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆