@econgineer बहुत बढ़िया पोस्ट। लेकिन मैं बहुत JSON डेटा कर रखने के लिए आलसी हूँ ....
मुझे लगता है कि इस कोड काम करता है ... अजीब यह करने के लिए JQ का कारण बनता है -
मैं एक ES क्वेरी के लिए यह प्रयास करने के लिए हम पर काम कर रहे चाहता था शिकायत लेकिन ElasticSearch काम ....
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)))
आप द्वारा
cat t2.json | tr "\'" "\"" | jq '.'
उत्पादन सुशोभित यदि आप देखना चाहिए कुछ तरह
0,123,
{
"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"
}
}
}
}
}
}
]
}
}
और फिर क्वेरी करने के लिए यह
curl --silent My_ES_Server:9200:/INDEX/_search -d @t2.json
प्रारंभिक मार्गदर्शन के लिए बहुत-बहुत धन्यवाद सिर्फ एक सामान्य है es, मुझे आशा है कि किसी और उपयोग की इस पाते हैं।
स्रोत
2017-08-15 12:14:12
कैसे आप में से किसी 'वैकल्पिक span_multi' कर सकते हैं? – perrohunter