2016-08-24 111 views
0

我在我的项目中使用Elasticsearch。 我Elasticsearch查询是这样的:Elasticsearch不能使用两个或多个过滤器

Array(
    [index] => galaxy 
    [type] => galaxy 
    [size] => 1000 
    [from] => 0 
    [body] => Array(
     [query] => Array(
      [filtered] => Array(
       [query] => Array(
        [query_string] => Array(
         [default_operator] => AND 
         [query] => vestel* 
        ) 
       ) 
       [filter] => Array(
        [bool] => Array(
         [must] => Array(
          [term] => Array(
           [fk_product_category] => 1 
           [fk_product_group] => 1 
          ) 
         ) 
        ) 
       ) 
      ) 
     ) 
    ) 
) 

当我删除过滤器条件例如fk_product_group它完美的作品之一,但在使用时两个滤波器我与代码400错误请求致命错误。

回答

0

每个过滤器必须在其自己的term过滤

Array(
    [index] => galaxy 
    [type] => galaxy 
    [size] => 1000 
    [from] => 0 
    [body] => Array(
     [query] => Array(
      [filtered] => Array(
       [query] => Array(
        [query_string] => Array(
         [default_operator] => AND 
         [query] => vestel* 
        ) 
       ) 
       [filter] => Array(
        [bool] => Array(
         [must] => Array(
          Array(
           [term] => Array(
            [fk_product_category] => 1 
           ) 
          ), 
          Array(
           [term] => Array(
            [fk_product_group] => 1 
           ) 
          ) 
         ) 
        ) 
       ) 
      ) 
     ) 
    ) 
) 
+0

谢谢。是工作。 – nagiyevel