Skip to content

Instantly share code, notes, and snippets.

@timseed
Created August 15, 2017 12:44
Show Gist options
  • Select an option

  • Save timseed/9891b46d5d0fca5ee632fe001d08fe1c to your computer and use it in GitHub Desktop.

Select an option

Save timseed/9891b46d5d0fca5ee632fe001d08fe1c to your computer and use it in GitHub Desktop.
import json
import pprint
from collections import defaultdict
nested_dict = lambda: defaultdict(nested_dict)
query=nested_dict()
query['span_near']['clauses']=list()
query['slop']='1'
query['in_order']="true"


words=['what','is','this']
for w in words:
    nest = nested_dict()
    nest["span_multi"]["match"]["fuzzy"]["msg"]["fuzziness"]["value"]=w
    nest["span_multi"]["match"]["fuzzy"]["msg"]["fuzziness"]["fuzziness"]="2"
    json.dumps(nest)
    query['span_near']['clauses'].append(json.loads(json.dumps(nest)))


pprint.pprint(json.loads(json.dumps(query)))
{'in_order': 'true',
 'slop': '1',
 'span_near': {'clauses': [{'span_multi': {'match': {'fuzzy': {'msg': {'fuzziness': {'fuzziness': '2',
                                                                                     'value': 'what'}}}}}},
                           {'span_multi': {'match': {'fuzzy': {'msg': {'fuzziness': {'fuzziness': '2',
                                                                                     'value': 'is'}}}}}},
                           {'span_multi': {'match': {'fuzzy': {'msg': {'fuzziness': {'fuzziness': '2',
                                                                                     'value': 'this'}}}}}}]}}
{"query":
{
  "span_near": {
    "clauses": [
      {
        "span_multi": {
          "match": {
            "fuzzy": {
              "content": {
                "fuzziness": "2",
                "value": "word"
              }
            }
          }
        }
      },
      {
        "span_multi": {
          "match": {
            "fuzzy": {
              "content": {
                "fuzziness": "2",
                "value": "another"
              }
            }
          }
        }
      }                   
    ],
    "slop": 1,
    "in_order": "true"
@timseed

timseed commented Aug 15, 2017

Copy link
Copy Markdown
Author

Building a slightly more complex query for ES. Not working as I had thought it would... so more research needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment