1
votes

I'm using the Elastic search extension to Python, trying to query specific path.

Here is my wrapped query:

{
"size": 1000,
 "query": {
   "filtered": {
     "filter": {
       "bool": {
         "must": [
           {
             "term": {
               "Path": "c:\\myfolder\\myfile.txt"
             }
           }
         ]
       }
     }
   }
 }
}

Which works fine in kopf plugin.

Here is my Python code:

from elasticsearch import Elasticsearch
es = Elasticsearch(hosts=['my_server'])
index = "my_index"
query = '{"size":1000,"query":{"filtered":{"filter":{"bool":{"must":[{"term":{"Path":"c:\\myfolder\\myfile.txt"}}]}}}}}'
response = es.search(index=index, body=query)

For some reason I'm getting this error (which will not occur without the backslash):

/usr/local/lib/python2.7/dist-packages/elasticsearch/client/utils.py", line 69, in _wrapped return func(*args, params=params, **kwargs) File "/usr/local/lib/python2.7/dist-packages/elasticsearch/client/init.py", line 530, in search doc_type, '_search'), params=params, body=body) File "/usr/local/lib/python2.7/dist-packages/elasticsearch/transport.py", line 329, in perform_request status, headers, data = connection.perform_request(method, url, params, body, ignore=ignore, timeout=timeout) File "/usr/local/lib/python2.7/dist-packages/elasticsearch/connection/http_urllib3.py", line 106, in perform_request self._raise_error(response.status, raw_data) File "/usr/local/lib/python2.7/dist-packages/elasticsearch/connection/base.py", line 105, in _raise_error raise HTTP_EXCEPTIONS.get(status_code, TransportError)(status_code, error_message, additional_info) elasticsearch.exceptions.RequestError

This problem happens only when there are backslashes.

Note: I'm working on Ubuntu.

Thanks in advance.

1

1 Answers

1
votes

Try changing the "Path" to c:\\\\myfolder\\\\myfile.txt.