2017-01-19 4 views
0

私はアップグレードelasticsearch 2.xのは、クエリである5.0アップグレードelasticsearchの2.xはelasticsearchするためにいくつかのエラーの理由を入手5.0

をelasticsearchするクエリに問題があります。

"query": { 
    "function_score": { 
    "query": { 
     "filtered": { 
     "query": { 
      "dis_max": { 
      "queries": [{ 
       "match_phrase": { 
       "title": { 
        "query": "keyword", 
        "slop": 3 
       } 
       } 
      }, { 
       "match_phrase": { 
       "content": { 
        "query": "keyword", 
        "slop": 3 
       } 
       } 
      }], 
      "tie_breaker": 0.3 
      } 
     }, 
     "filter": { 
      "bool": { 
      "should": [{ 
       "bool": { 
       "must": [{ 
        "type": { 
        "value": "product" 
        } 
       }, { 
        "term": { 
        "is_deleted": false 
        } 
       }] 
       } 
      }, { 
       "bool": { 
       "must": [{ 
        "type": { 
        "value": "service" 
        } 
       }, { 
        "term": { 
        "is_deleted": false 
        } 
       }] 
       } 
      }] 
      } 
     } 
     } 
    }, 
    "functions": [{ 
     "script_score": { 
     "script": "doc['_type'].value == 'product' ? _score * 15 : (doc['_type'].value == 'service' ? _score * 10 : _score)", 
     "lang": "groovy" 
     } 
    }] 
    } 
} 

私はその理由などを取得しますこの:

{ 
    "error" : { 
    "root_cause" : [ 
     { 
     "type" : "parsing_exception", 
     "reason" : "no [query] registered for [filtered]", 
     "line" : 6, 
     "col" : 76 
     } 
    ], 
    "type" : "parsing_exception", 
    "reason" : "no [query] registered for [filtered]", 
    "line" : 6, 
    "col" : 76 
    }, 
    "status" : 400 
} 

私は研究、filtered 5.0 elasticsearchにdepractedされていていると私はboolに変更する必要があります。あなたはこれにあなたのクエリを変更する必要が

答えて

1

私はそれを変更しようとするが、私はのような理由でエラールック「script_scoreクエリが[LANG]をサポートしていません」を取得:

{ 
    "query": { 
    "function_score": { 
     "query": { 
     "bool": { 
      "must": { 
      "dis_max": { 
       "queries": [ 
       { 
        "match_phrase": { 
        "title": { 
         "query": "keyword", 
         "slop": 3 
        } 
        } 
       }, 
       { 
        "match_phrase": { 
        "content": { 
         "query": "keyword", 
         "slop": 3 
        } 
        } 
       } 
       ], 
       "tie_breaker": 0.3 
      } 
      }, 
      "filter": { 
      "bool": { 
       "should": [ 
       { 
        "bool": { 
        "must": [ 
         { 
         "type": { 
          "value": "product" 
         } 
         }, 
         { 
         "term": { 
          "is_deleted": false 
         } 
         } 
        ] 
        } 
       }, 
       { 
        "bool": { 
        "must": [ 
         { 
         "type": { 
          "value": "service" 
         } 
         }, 
         { 
         "term": { 
          "is_deleted": false 
         } 
         } 
        ] 
        } 
       } 
       ] 
      } 
      } 
     } 
     }, 
     "functions": [ 
     { 
      "script_score": { 
      "script": { 
       "inline": "doc['_type'].value == 'product' ? _score * 15 : (doc['_type'].value == 'service' ? _score * 10 : _score)", 
       "lang": "groovy" 
      } 
      } 
     } 
     ] 
    } 
    } 
} 
+0

それが働いている..私は、私は間違いを持っ​​ていると思います'bool'に' filtered 'を置き換えたとき – itx

+0

いいえ、 'script_score'も微調整が必​​要でした。 – Val

+0

はい、私はそれを見逃しています。 – itx

関連する問題