多个查询返回错误原因?

时间:2015-09-01 12:13:26

标签: php elasticsearch

我想根据来源进行查询,所以我将该编码放在我的基本查询中,它应该始终根据源查询,其中源值存储在变量$ webAddress中。

如果没有选择任何内容,它应该运行默认查询,但它总是给我一个奇怪的错误!

错误消息---

enter image description here

所以为什么我收到这个错误,任何人都知道如何解决这个奇怪的问题!

非常感谢先进。

enter image description here

  
      
  1. 在AbstractJsonSerializer :: jsonDecode('{“take”:291,“timed_out”:false,“_ shards”:{“total”:2,“success”:2,“failed”:0}, “命中”:{ “总”:10 “MAX_SCORE”:0.94276774, “命中”:[{ “_索引”: “myIndex”, “_类型”: “的myType”, “_ ID”: “p717ff3c9460bf8a52407d6e4a63f239dbeb052cf”, “_分数” :0.94276774, “_源”:{   “内容”:“美丽的后院已经成为郊区的象征   就像车道上的一辆全新的汽车。升级你的户外   空间不仅仅是升级......}   供应商/ elasticsearch / elasticsearch / SRC / Elasticsearch /串行器/ SmartSerializer.php   在第39行+

  2.   
  3. 在SmartSerializer上 - >反序列化('{“take”:291,“timed_out”:false,“_ shards”:{“total”:2,“success”:2,“failed”:0} , “命中”:{ “总”:10 “MAX_SCORE”:0.94276774, “命中”:[{ “_索引”: “myIndex”, “_类型”: “的myType”, “_ ID”: “p717ff3c9460bf8a52407d6e4a63f239dbeb052cf”,“_分数“:0.94276774,” _源“:{   “内容”:“一个男友......}

         

    4.at Transport - > performRequest('GET','/ myType / content / _search',array('size'=> '30'),array('query'=> array('bool '=>数组('必须'   => array(array('query_string'=> array('default_field'=>'source','query'=>'aa.com','bb.com','cc.com'))))) ,'sort'=> array())in   供应商/ elasticsearch / elasticsearch / SRC / Elasticsearch /端点/ AbstractEndpoint.php   在第86行+

  4.   
  5. 在AbstractEndpoint - > performRequest()在vendor / elasticsearch / elasticsearch / src / Elasticsearch / Client.php at at   1012行

  6.   

如果我打印正在执行的查询我得到---

{
    "index": "myIndex",
    "type": "myType",
    "size": 30,
    "body": {
        "query": {
            "bool": {
                "must": [
                    {
                        "query_string": {
                            "default_field": "source",
                            "query": "aa.com, bb.com, cc.com"
                        }
                    }
                ]
            }
        },
        "sort": []
    } }

1 个答案:

答案 0 :(得分:1)

在您的PHP代码中,您已插入两次query/bool/must组合。只需删除第一个,你应该没事。

    $params = array(
        'index' => "myIndex",
        'type' => "myType",
        'xize' => 100,
        'body' => array(
            'query' => array(
                'bool' => array(
                    'must' => array(

                    )
                )
            ),
            'sort' => array()
        )
    );

    $params['body']['query']['bool']['must'][] = array(
        'query_string' => array(
            'default_field' => 'source',
            'query' => implode(', ', array_column($webAddress, 'source'))
        )
    ):