【问题标题】:How to pass null filter in elastic search + PHP如何在弹性搜索+ PHP中通过空过滤器
【发布时间】:2018-04-14 19:44:41
【问题描述】:

我想过滤搜索结果。我想搜索如果未指定“manuf_id”,则应该返回所有记录。下面是我在弹性中的搜索查询。

$params = [
            'index' => $this->client->getIndex(),
            'type'  => $this->client->getType(),
            "from" => $from, "size" => $productPerPage,
            'body'  => [
           "query" => [
               "bool" => [
                  "must" => [
                     [
                          "multi_match" => [
                              "fields" => ["prod_name", "prod_seo_name"],
                              "type" => "phrase_prefix",
                              "query" => 'samsung'
                          ]
                     ],
                        //$conditionArr
                     [
                          "term"=> ["manuf_id"=>null]
                     ]
                  ]
               ]
            ]
            ],
       ];

以上查询未运行。有什么我想念的吗?任何帮助都会很棒。

【问题讨论】:

    标签: php mysql elasticsearch


    【解决方案1】:

    只有在必要的时候才可以通过这个条件,像这样:

    $params = [
        'index' => $this->client->getIndex(),
        'type'  => $this->client->getType(),
        "from" => $from, "size" => $productPerPage,
        'body'  => [
            "query" => [
               "bool" => [
                  "must" => [
                     [
                          "multi_match" => [
                              "fields" => ["prod_name", "prod_seo_name"],
                              "type" => "phrase_prefix",
                              "query" => 'samsung'
                          ]
                     ],
                  ]
               ]
            ]
        ],
    ];
    if ($manufId > 0) {
      $params['body']['query']['bool']['must'][] = [
          'term' => ['manuf_id' => $manufId],
      ];
    }
    

    【讨论】:

    • 这就像一个 chram。你有任何参考我如何添加和条件。
    • $params['body']['query']['bool']['must'][]中再添加一个元素
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多