-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsearch.py
51 lines (45 loc) · 1.31 KB
/
search.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from utils import Logger, elastic_connection, INDEX_NAME, MODEL_NAME
baseQuery = {
"query": {
"multi_match": {
"query": "w3c",
}
},
"rescore": {
"query": {
"rescore_query": {
"sltr": {
"params": {
"keywords": ""
},
"model": "",
}
}
},
},
"ext": {
"ltr_log": {
"log_specs": {
"name": "log_entry",
"rescore_index": 0,
"missing_as_zero": True
}
}
}
}
def ltr_query(keywords, model_name):
import json
baseQuery['rescore']['query']['rescore_query']['sltr']['model'] = model_name
baseQuery['query']['multi_match']['query'] = keywords
baseQuery['rescore']['query']['rescore_query']['sltr']['params']['keywords'] = keywords
Logger.logger.info("%s" % json.dumps(baseQuery))
return baseQuery
if __name__ == "__main__":
from sys import argv
es = elastic_connection(timeout=1000)
model = MODEL_NAME
if len(argv) > 2:
model = argv[2]
results = es.search(index=INDEX_NAME, body=ltr_query(argv[1], model))
for result in results['hits']['hits']:
Logger.logger.info(result['_source']['name'])