【问题标题】:Elastic search AND/BOOL condition + PHP弹性搜索 AND/BOOL 条件 + PHP
【发布时间】:2018-04-14 22:27:33
【问题描述】:

我想在弹性搜索查询中传递 AND 条件。如果 'manuf_id' 和 'network_id' > 0 但这不能正常工作。

 "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],
            ];
        }

任何帮助或参考都会很棒。

【问题讨论】:

    标签: php mysql elasticsearch


    【解决方案1】:

    您需要分别添加每个term 约束:

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

    【讨论】:

    • 酷,很高兴它有帮助!
    猜你喜欢
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    相关资源
    最近更新 更多