2017-11-03 19 views
0

これは私の問題です:私はフィルタ/クエリ構文(elasticsearch 1.x)をelasticsearch 5.x構文に変換する必要があります。弾性検索マイグレーションフィルタ

これが私のクエリです:

{ 
"query ": { 
    "filtered ": { 
     "query ": { 
      "fuzzy_like_this ": { 
       "like_text ": " cin ", 
       "max_query_terms ": 12, 
       "fuzziness ": 0.7 
      } 
     }, 
     "filter ": { 
      "and ": { 
       "filters ": [{ 
        "or ": { 
         "filters ": [{ 
          "type ": { 
           "value ": "etude_patrimoine_architecture " 
          } 
         }] 
        } 
       }] 
      } 
     } 
    } 
} 
} 

私は本当にブール値を有する弾性5.xの構文を理解していません。

このフィルタを移行するための助けがあれば幸いです。

答えて

0

をこれが最終的なソリューションです:

{ 
    "query": { 
     "bool": { 
      "must": [{ 
       "match": { 
        "_all": { 
         "query": QUERYVALUE, 
         "fuzziness": "AUTO" 
        } 
       } 
      }, { 
       "bool": { 
        "should": [{ 
         "type": { 
          "value": VAL1 
         } 
        }, { 
         "type": { 
          "value": VAL2 
         } 
        }] 
       } 
      }], 
      "filter": { 
       "geo_shape": { 
        "geometry": { 
         "shape": { 
          "type": "envelope", 
          "coordinates": COORDARAY 
         } 
        } 
       } 
      } 
     } 
    } 
} 
0

基本的には、

  • filtered/query部分はfiltered/filter部分はあなたがする必要があるかどうかに応じてbool/filterbool/must_notまたはbool/shouldでAND、NOT、OR動作のいずれかになりbool/must
  • になります。

このような何かあなたが始める必要があります。

{ 
    "query": { 
    "bool": { 
     "must": [ 
     query 
     ], 
     "should": [ 
     queryLayers 
     ] 
    } 
    } 
} 
+0

あなたにヴァルありがとう、私はあなたのソリューションをしようとします。 json stringifyでより明確になるように投稿を更新しました。 – Gaet