2016-08-24 41 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