2016-04-22 4 views
2

以下のクエリはES 1.3.4インデックスで動作しますが、ES 2.3.0インデックスでは動作しませんどのように私はそれを修正することができますか?私のインデックスはproductとproduct_regionの親子関係を持っています。ElasticSearchを1.3xから2.3xにアップグレードして以来、子タイプのスクリプトは動作していません

それが与えるエラーがある:クエリの

No field found for [product_region.mask] in mapping with types [product] 

関連する部分がある:「(DOCの[ 'product_region.mask:

"query": { 
    "filtered": { 
     "query": { 
     "bool": { 
      "must": [ 
      { 
       "bool": { 
       "should": [ 
        { 
        "wildcard": { 
         "product_number": { 
         "value": "*999*" 
         } 
        } 
        }, 
        { 
        "wildcard": { 
         "product_code": { 
         "value": "*999*" 
         } 
        } 
        } 
       ] 
       } 
      } 
      ] 
     } 
     }, 
     "filter": { 
     "or": [ 
      { 
      "has_child": { 
       "type": "product_region", 
       "query": { 
       "constant_score": { 
        "filter": { 
        "and": [ 
         { 
         "missing": { 
          "field": "ref_val1" 
         } 
         }, 
         { 
         "script": { 
          "script": "(doc['product_region.mask'].value & 65535) > 0" 
         } 
         }, 
         { 
         "or": [ 
          { 
+0

^^解決策を回答として追加して受け入れます。 –

答えて

0

それは私が "スクリプト" を変更する必要が判明'] .value & 65535)> "スクリプト": "(doc [' mask ']。値& 65535)> 0"

関連する問題