dsd30433 2016-09-25 10:19
浏览 127

Elasticsearch php在must子句中设置2个标准时给出错误

I am trying to add multiple criterion to ElasticSearch PHP in must clause, but it is giving me a 500 Error.

My params are:

 $params = ['index' => 'smartjn',
    'type' => 'feed_details',
    'size' => 10,
    'body' => [
        'sort' => [
            'sorter' => [
                'order' => 'desc',
                'mode' => 'max'
            ]
        ],
        'query' => ['bool' => [
                'must' => [
                    ['match' => ['approvalStatus' => 'approved']],
                    [ '_id' => [
                            '$lt' => new MongoDB\BSON\ObjectId($documentid)
                        ]
                    ]
                ],
                'must_not' => ['term' => ['muteFeedUserIds' => $userID]],
                'must_not' => ['term' => ['muteUserIds' => $userID]]
            ]
        ]
    ]
];

Please note that this works if I remove the second criteria in must clause i.e.

 $params = ['index' => 'smartjn',
    'type' => 'feed_details',
    'size' => 10,
    'body' => [
        'sort' => [
            'sorter' => [
                'order' => 'desc',
                'mode' => 'max'
            ]
        ],
        'query' => ['bool' => [
                'must' => [
                    ['match' => ['approvalStatus' => 'approved']]
                ],
                'must_not' => ['term' => ['muteFeedUserIds' => $userID]],
                'must_not' => ['term' => ['muteUserIds' => $userID]]
            ]
        ]
    ]
];

Any idea what am I missing?

Thanks

  • 写回答

1条回答 默认 最新

  • duanjiao2978 2016-09-25 11:00
    关注

    check this out.

      'query' => ['bool' => [
                        'must' => [
                            ['match' => ['approvalStatus' => 'approved']],
                            [ 'ids' => [
                                    'values' => [new MongoDB\BSON\ObjectId($documentid)]
                                ]
                            ]
                        ],
                        'must_not' => ['term' => ['muteFeedUserIds' => $userID]],
                        'must_not' => ['term' => ['muteUserIds' => $userID]]
                    ]
    

    If that doesnt work i am giving you the raw as i am not good with elasticphp

    {
      "query": {
        "bool": {
          "must": [
            {
              "ids": {
                "type": "type_of_index"
                "values": ["AVbqtjXfoKQ0pubF_-NA"]
              }
            }
          ]
        }
      }
    }
    

    type is optional Just add this ids part under must area.

    评论

报告相同问题?

悬赏问题

  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch