python es2csv-elasticsearch.exceptions.requesterror:requesterror(400,u'search\u phase\u execution\u exception',u'compile error')

zynd9foi  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(654)

我在尝试什么 es2csv -u http://localhost:9200/ -r -q '{ "query": {"match_all": {}},"script_fields":{"field_name": {"script": {"source": "calculations","lang": "painless" }}}}' -i index -f field_name --debug -o output.csv 但它给了我错误

File "/usr/bin/es2csv", line 8, in <module>
sys.exit(main())
 File "/usr/lib/python2.7/site-packages/es2csv_cli.py", line 53, in main
es.search_query()
File "/usr/lib/python2.7/site-packages/es2csv.py", line 26, in f_retry
return f(*args,**kwargs)
File "/usr/lib/python2.7/site-packages/es2csv.py", line 126, in search_query
res = self.es_conn.search(**search_args)
File "/usr/lib/python2.7/site-packages/elasticsearch/client/utils.py", line 152, in _wrapped
return func(*args, params=params, headers=headers,**kwargs)
File "/usr/lib/python2.7/site-packages/elasticsearch/client/__init__.py", line 1663, in search
body=body,
File "/usr/lib/python2.7/site-packages/elasticsearch/transport.py", line 392, in perform_request
raise e
 elasticsearch.exceptions.RequestError: RequestError(400, u'search_phase_execution_exception', 
u'compile error')

任何我遗漏或做错的事情。提前谢谢

pzfprimi

pzfprimi1#

我不熟悉w/ es2csv 但展开的查询如下所示:

{
  "query": {
    "match_all": {}
  },
  "script_fields": {
    "field_name": {
      "script": {
        "source": "calculations",  <--
        "lang": "painless"
      }
    }
  }
}

你得到编译错误是因为 calculations 是一个全局未定义的变量。所以要么换成 doc.calculations.value 或者类似的,但我怀疑它是一个值数组,在这种情况下,您可能更希望使用 "_source": "calculations" 而不是 script_field 刚刚回来 calculations :

{
  "query": {
    "match_all": {}
  },
  "_source": "calculations"
}

以更简洁的形式:

es2csv  -u http://localhost:9200/ -r -q '{"query":{"match_all":{}},"_source":"calculations"}' ...

这个 match_all 查询可以完全忽略:

es2csv  -u http://localhost:9200/ -r -q '{"_source":"calculations"}' ...

相关问题