2017-12-29 24 views
0

スクリプトを使用して検索結果を除外していますが、期待どおりに機能しません。インデックス内のすべてのデータをチェックし、selluseridは値がnullと0です。Elasticsearchスクリプトのクエリが機能しない

{ 
    "script": { 
      "script": { 
       "inline": "(doc['isshoper'].value == 0) || params.arrShopUser.get(doc['selluserid'].value.toString())", 
       "params": { 
       "arrShopUser": { 
        "95794": true, 
        "214214": true, 
        "329221": true, 
        "8888": true, 
        "373502": true, 
        "309235": true, 
        "383247": true, 
        "383252": true, 
        "9999": true, 
        "637312": true, 
        "642158": true, 
        "445055": true, 
        "444214": true, 
        "821435": true, 
        "1111": true, 
        "2222": true, 
        "6666": true, 
        "7777": true, 
        "4444": true, 
        "666": true, 
        "777": true, 
        "222": true, 
        "333": true, 
        "555": true, 
        "888": true, 
        "66633": true, 
        "1991944": true, 
        "1991949": true, 
        "1991941": true, 
        "1992000": true, 
        "1992019": true, 
        "1992023": true, 
        "1992046": true, 
        "1992068": true, 
        "1992006": true, 
        "1992055": true 
       } 
       } 
      } 
      } 
     } 

エラーメッセージ

{ 
    "error": { 
    "root_cause": [ 
     { 
     "type": "script_exception", 
     "reason": "runtime error", 
     "script_stack": [ 
      "(doc['isshoper'].value == 0) || params.arrShopUser.get(doc['selluserid'].value.toString())", 
      "                    ^---- HERE" 
     ], 
     "script": "(doc['isshoper'].value == 0) || params.arrShopUser.get(doc['selluserid'].value.toString())", 
     "lang": "painless" 
     } 
    ], 
    "type": "search_phase_execution_exception", 
    "reason": "all shards failed", 
    "phase": "query", 
    "grouped": true, 
    "failed_shards": [ 
     { 
     "shard": 0, 
     "index": "tsy_trade", 
     "node": "1MbSaY-RR6GPgo_AI-g8GA", 
     "reason": { 
      "type": "script_exception", 
      "reason": "runtime error", 
      "script_stack": [ 
      "(doc['isshoper'].value == 0) || params.arrShopUser.get(doc['selluserid'].value.toString())", 
      "                    ^---- HERE" 
      ], 
      "script": "(doc['isshoper'].value == 0) || params.arrShopUser.get(doc['selluserid'].value.toString())", 
      "lang": "painless", 
      "caused_by": { 
      "type": "null_pointer_exception", 
      "reason": null 
      } 
     } 
     } 
    ] 
    }, 
    "status": 500 
} 
+0

場合、これが唯一の失敗する可能性があります:' DOC [ 'selluseridを'] .value.toString() ' – Val

+0

とにかくこの問題を解決してください?私はJavaやPainless言語に精通していません。 –

+0

すべてのゼロ文書とヌル文書をesから除外しても、このエラーは表示されます。 –

答えて

0

代わりにこのスクリプトを試してみてください: `selluserid`がNULL値または0を持つ

(doc['isshoper'].value == 0) || (doc['isshoper'].value == null) || params.arrShopUser.get(doc['selluserid'].value.toString()) 
+0

これで運がいい? – Val

関連する問題