duanfanta6741 2017-11-02 11:51
浏览 56
已采纳

弹性搜索AND / BOOL条件+ PHP

I want to pass AND condtion in elastic search query. if 'manuf_id' and 'network_id' is > 0 but this is not working properly.

 "query" => [
               "bool" => [
                  "must" => [
                     [
                          "multi_match" => [
                              "fields" => ["prod_name", "prod_seo_name"],
                              "type" => "phrase_prefix",
                              "query" => $query
                          ]
                     ],

                  ]
               ]
            ]

if ($manufacture > 0 && $network > 0) {
            $params['body']['query']['bool']['must'][] = [
            'term' => ['manuf_id' => $manufacture],
            'term' => ['network_id' => $network],
            ];
        }

Any help or reference would be great.

  • 写回答

1条回答 默认 最新

  • douyou7878 2017-11-02 11:53
    关注

    You need to add each term constraint separately:

    if ($manufacture > 0 && $network > 0) {
        $params['body']['query']['bool']['must'][] = [
            'term' => ['manuf_id' => $manufacture]
        ];
        $params['body']['query']['bool']['must'][] = [
            'term' => ['network_id' => $network]
        ];
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算