2016-12-14 59 views
0

夥計們我是新手在彈性搜索並試圖從2. *遷移到5. *。Elasticsearch查詢從2.0轉換到5.0

我有一個查詢,我無法轉換。我試着搜索谷歌,以及閱讀文檔,但其中的例子是非常基本的,並沒有真正幫助在這裏。也許有人可以幫我把下面的查詢轉換成現代的查詢?我正在使用PHP客戶端。

$query = [ 
    'index' => 'index_name', 
    'type' => 'table', 
    'body' => [ 
     'query' => [ 
      'filtered' => [ 
       'query' => [ 
        'bool' => [ 
         'must' => [ 
          [ 
           'match' => [ 
            '_all' => [ 
             'query'  => 'zonda', 
             'fuzziness' => 1, 
            ], 
           ], 
          ], 
         ], 
        ], 
       ], 
       'filter' => [ 
        [ 
         'term' => [ 
          'foo' => 1, 
         ], 
        ], 
       ], 
      ], 
     ], 
    ], 
    'size' => 10000, 
]; 

回答

0

不多到PHP,所以無法檢查它,但它應該是這樣的:

$query = [ 
    'index' => 'index_name', 
    'type' => 'table', 
    'body' => [ 
     'query' => [ 
      'bool' => [ 
       'must' => [ 
        [ 
         'match' => [ 
          '_all' => [ 
           'query'  => 'zonda', 
           'fuzziness' => 1, 
          ], 
         ], 
        ], 
       ], 
       'filter' => [ 
        [ 
         'term' => [ 
          'foo' => 1, 
         ], 
        ], 
       ], 
      ], 
     ], 
    ], 
    'size' => 10000, 
]; 

過濾查詢已經不復存在了,你可以使用布爾的過濾器部分查詢。

+0

說bool查詢不能有查詢參數。 –

+0

布爾查詢具有必須/必須/必須/過濾器的選項,在那裏你可以把查詢。你不需要你在問題中給出的bool中的附加查詢 –