In [16]:
import elasticsearch;
import math;

def _getAllItems(_es):
    _res = _es.search(
        index='jeymart_item',
        doc_type='doc',
        body=
        {
            "size": 5000, 
            "query": {
                "match_all": {}
            }
        }
    );
    return _res['hits']['hits'];

def _prepareBulkEntries(_items, _stockCode): 
    _entries=[];
    for _item in _items:
        _id = _item['_id'];
        # add meta
        _entries.push({ "update" : { "_index" : "jeymart_user_trx", "_type" : "doc", "_id" : _id } });
        _entries.push({ "doc" : {"k_stock_code" :  _stockCode } });
    return _entries;
    

def _prepareUpdateEntries(_es, _items):
    
    for _item in _items:
        _id = _item['_id']
        _desc = _item['_source']['t_description']
        
        # query for the average...
        _res=_es.search(
            index='jeymart_user_trx',
            doc_type='doc',
            body=
            {
              "size": 10000, 
              "query": {
                "match_phrase": {
                  "t_description": _desc
                }
              }
            }            
        );
        # build the bulk update entries
        
        print(len(_res['hits']['hits']));
        
_es = elasticsearch.Elasticsearch([ "http://localhost:9201"], requestTimeout="600000" );
# get back all items
_items=_getAllItems(_es);
_prepareUpdateEntries(_es, _items);



# add back the "k_stock_code" and the overall average of "i_ratings" for jeymart_item


23
30
30
28
28
27
27
35
37
38
33
29
35
37
38
33
29
29
46
33
23
29
46
33
23
29
29
31
31
24
37
29
24
37
29
38
38
41
38
36
41
36
32
38
38
32
38
29
29
25
25
104
33
104
33
30
42
30
42
37
37
31
31
38
38
31
31
27
31
30
25
26
26
26
27
34
36
35
32
34
36
35
32
32
32
19
32
19
31
32
35
35
21
21
35
28
41
23
31
25
32
28
37
28
26
26
31
26
40
25
23
31
25
32
28
37
28
26
26
31
26
40
25
31
29
22
22
22
24
37
30
40
28
27
30
30
23
31
36
31
30
30
30
23
31
36
20
28
28
20
25
26
26
26
27
31
22
24
31
29
37
33
33
33
33
30
40
28
36
34
33
38
27
26
34
33
38
35
28
41
36
27
26
36
35
21
30
29
30
38
35
30
38
32
20
33
33
32
20
33
33
42
37
24
22
25
28
33
36
21
29
30
42
37
24
22
25
28
33
36
29
29
29
25
36
22
36
22
35
34
34
27
36
27
36
36
35
63
33
30
32
29
25
63
33
30
32
30
30
20
20
24
24
39
39
29
30
89
37
89
37
30
29
28
28
16
35
35
28
28
16
37
37
22
22
33
23
33
23
39
39
34
34
29
32
32
27
28
27
28
27
35
29
31
31
27
35
24
28
25
35
25
35
24
28
28
28
27
27
29
24
32
30
29
24
32
30
35
35
34
32
34
26
32
26
23
23
33
33
26
27
26
27
31
31
32
26
32
26
29
29
28
28
31
31
19
19
35
29
24
64
36
35
29
24
64
36
29
28
34
22
34
25
32
35
18
35
36
37
31
34
25
24
32
32
35
18
32
28
29
32
28
29
33
16
29
32
16
31
32
31
29
32
27
26
19
27
26
19
32
27
26
33
32
32
22
31
27
21
27
26
33
32
32
22
31
27
21
31
32
40
26
31
32
40
26
32
33
35
33
35
22
23
28
36
40
26
33
31
21
31
31
21
31
23
35
37
29
33
22
37
31
28
28
22
34
33
29
25
30
34
34
33
25
30
33
28
39
28
35
36
37
33
31
28
39
28
24
32
33
32
32
23
35
37
29
33
22
23
28
36
40
26
33
149
30
30
31
28
30
31
149
22
37
31
30
31
33
26
31
28
24
33
31
31
34
30
21
35
34
30
21
35
32
33
26
28
24
33
17
26
32
28
25
28
30
36
29
25
28
29
32
37
25
28
39
38
39
38
31
34
37
19
52
29
31
37
19
52
29
38
33
38
33
28
26
36
36
37
37
32
26
32
33
26
28
26
28
26
32
30
25
33
24
44
35
34
33
29
30
32
28
32
28
27
17
31
26
22
26
27
42
32
26
27
42
27
31
22
27
32
25
27
32
29
30
32
36
29
37
34
30
25
33
24
44
35
34
33
29
32
33
30
28
35
30
31
28
28
33
34
33
25
34
28
26
36
36
29
35
30
31
28
29
25
30
30
30
30
31
30
31
25
25
23
23
28
17
14
33
14
33
28
63
28
34
63
28
34
30
27
27
28
24
23
24
28
17
61
61
23
28
41
28
28
28
41
25
45
25
45
25
25
33
33
29
29
29
26
26
23
27
29
23
27
30
30
27
34
29
29
35
35
27
34
39
39
38
28
38
28
25
31
31
25
22
30
30
22
36
36
22
22
28
28
34
34
24
24
30
40
40
29
38
29
31
30
38
29
29
26
36
31
26
36
46
28
28
31
31
37
46
37
34
23
23
34
27
27
22
22
40
40
30
30
30
40
30
40
26
26
34
34
32
32
35
35
28
28
41
41
37
26
29
26
26
33
26
36
33
26
36
22
21
37
33
26
29
24
42
42
33
24
22
21
31
29
31
29
24
24
24
36
27
27
24
29
29
36
34
34
34
33
34
29
29
33
24
31
35
24
31
35
38
28
38
38
38
28
22
22
22
45
22
45
37
30
30
37
33
27
29
29
33
27
29
29
26
26
41
30
30
41
39
39
31
31
27
27
44
29
33
33
44
29
38
38
41
30
41
30
36
28
28
30
36
30
77
77
25
25
37
37
34
34
22
23
23
22
32
32
25
25
32
32
46
46
32
32
34
34
27
35
35
27
39
39
32
32
30
30
28
28
28
28
25
25
36
36
24
24
23
25
28
23
25
28
31
36
31
36
33
33
22
22
34
34
29
29
24
24
36
36
24
24
30
36
30
36
38
26
33
28
36
33
28
36
27
28
34
27
34
28
34
34
25
28
40
35
31
30
25
28
40
35
31
30
31
30
31
30
20
28
36
32
25
24
31
35
35
27
39
46
39
39
46
36
36
38
29
29
32
31
32
76
22
22
23
62
36
32
36
29
22
22
22
22
38
26
46
40
32
38
29
29
32
31
32
22
32
76
32
22
23
62
36
32
36
29
22
22
40
32
29
30
29
20
28
36
32
25
24
31
35
35
27
39
46
38
30
38
26
32
29
26
35
36
29
24
23
35
34
35
23
29
32
25
30
26
29
32
25
30
26
32
28
36
30
34
40
30
34
40
30
42
28
28
24
24
27
29
31
30
24
25
22
33
32
36
26
36
36
36
26
35
36
24
34
32
28
36
24
24
27
29
31
30
24
25
30
42
22
33
37
32
27
37
32
27
29
29
30
30
33
31
31
27
27
27
34
26
30
30
28
30
30
38
20
32
31
36
34
34
38
32
34
38
17
44
37
25
43
25
33
36
38
24
33
31
31
27
27
27
34
26
30
30
28
30
30
38
20
32
31
36
34
34
38
32
34
38
17
44
37
25
43
25
33
36
38
24
26
26
37
25
25
37
34
25
34
25
25
32
25
32
31
31
29
29
33
33
36
36
39
20
62
36
68
68
62
29
39
20
62
36
68
68
62
34
29
31
27
34
29
25
29
28
42
32
34
35
33
29
25
29
28
42
32
41
30
32
23
40
28
30
32
41
26
32
24
37
41
20
36
30
23
26
34
26
32
24
27
39
40
41
20
36
30
23
26
34
31
27
39
40
25
32
31
23
35
34
25
32
31
23
35
34
36
36
29
38
25
31
31
26
28
16
29
38
33
36
27
33
36
27
36
39
24
38
26
29
34
29
36
31
28
28
27
30
28
27
30
36
28
27
32
27
32
35
33
27
23
40
28
31
37
36
39
26
28
16
29
38
24
38
33
37
29
26
33
37
29
38
31
30
41
22
31
30
41
22
40
38
28
40
38
24
29
38
25
38
24
28
40
33
30
40
33
30
30
24
30
27
33
24
30
31
26
28
26
39
26
37
40
33
40
33
31
26
28
26
39
26
37
40
33
40
33
34
20
23
41
34
20
23
41
32
32
29
31
29
34
38
30
33
23
31
34
21
23
31
31
25
19
30
27
33
29
31
29
34
38
30
33
23
31
34
21
23
25
19
39
23
25
23
25
39
29
33
29
33
29
29
21
21
22
22
34
34
33
33
40
40
38
38
38
38
16
16
29
29
29
29
35
35
32
32
30
33
26
30
33
26
38
38
22
22
32
31
27
29
59
39
22
25
31
27
29
59
39
22
25
31
32
31
28
28
25
25
35
26
33
41
38
32
29
32
38
30
34
34
28
26
39
23
35
26
33
41
38
32
29
32
38
30
34
34
28
26
39
23
32
31
35
29
28
25
32
31
35
29
28
25
29
32
29
32
31
38
31
31
32
38
34
31
32
34
34
25
34
19
19
25
35
35
26
33
33
26
36
36
20
20
24
24
26
26
26
26
39
37
41
29
26
27
36
28
34
41
33
27
33
27
35
30
37
27
32
24
35
24
39
47
31
30
30
29
32
28
24
30
32
24
35
24
39
47
31
30
30
29
32
28
24
30
29
34
25
31
31
32
29
27
27
33
30
34
25
31
31
32
17
34
29
32
30
17
34
29
32
30
34
24
27
33
30
34
23
39
39
28
31
24
27
33
30
34
23
39
25
31
39
18
28
31
34
41
34
41
27
34
26
25
36
29
27
34
26
25
36
29
28
37
30
26
30
26
28
28
35
26
27
29
29
22
40
36
45
22
30
25
39
25
32
29
31
37
29
41
31
32
29
26
24
27
30
27
19
36
38
28
30
34
28
41
27
30
26
33
31
27
21
33
34
35
30
24
27
37
30
19
38
30
28
27
30
26
31
21
34
33
30
25
31
18
34
28
28
35
26
38
27
29
29
22
40
36
45
22
30
38
36
33
41
28
36
26
31
36
31
33
27
37
17
27
37
17
28
37
33
41
28
36
26
31
33
31
27
31
33
28
27
31
33
28
31
33
44
25
32
23
31
23
27
37
22
22
27
31
27
31
36
29
33
28
29
33
28
23
32
39
28
23
32
39
28
35
26
31
38
25
26
31
38
25
33
32
34
30
29
39
28
34
30
29
39
28
33
40
37
28
18
40
31
37
25
25
34
35
36
30
33
31
28
28
37
27
33
17
44
25
28
28
37
27
17
32
31
27
37
36
40
37
28
18
40
31
32
35
28
29
37
25
25
34
35
36
35
30
33
28
29
36
25
36
25
26
41
29
26
29
24
27
33
24
27
35
32
41
32
33
30
35
25
26
22
36
31
37
25
37
25
32
32
20
22
20
22
27
27
28
29
32
28
29
32
31
44
26
31
40
31
30
35
28
28
35
25
31
26
32
22
34
36
37
31
35
23
23
39
28
34
32
29
29
34
29
25
28
38
35
31
32
34
37
35
23
23
39
28
34
32
29
29
34
29
25
28
38
31
44
26
31
40
29
31
29
37
35
37
35
27
31
31
36
36
36
36
33
27
33
28
24
28
24
28
31
25
25
27
34
28
28
31
27
34
28
32
32
22
22
33
33
37
37
29
21
29
21
28
28
32
32
20
32
32
20
34
34
35
35
30
30
25
25
57
57
57
57
39
28
39
28
28
28
35
35
37
37
32
26
32
23
23
32
32
31
32
33
33
28
27
26
31
32
28
27
31
37
31
37
33
30
30
32
35
35
33
32
35
35
27
33
27
33
39
28
39
28
41
52
52
41
34
34
34
34
34
34
36
36
26
26
21
21
28
31
33
28
31
33
36
22
22
26
32
32
33
33
32
36
36
36
26
32
33
27
33
33
33
27
28
21
35
28
21
35
26
26
37
37
37
41
37
41
27
27
30
30
29
29
27
27
33
33
29
29
30
30
39
39
25
25
36
36
30
35
35
41
33
41
33
30
21
21
27
20
20
27
27
27
32
32
21
21
26
26
40
40
35
30
26
26
35
30
33
33
33
26
23
33
26
23
21
21
31
31
29
29
29
25
25
29
29
29
31
31
33
33
25
25
32
32
25
25
29
29
25
26
33
25
26
33
26
33
32
33
32
26
26
28
26
28
38
38
41
41
32
32
33
33
66
66
66
66
27
27
27
27
33
33
34
44
27
37
34
44
36
31
35
29
33
24
36
31
24
29
33
36
36
34
34
40
40
39
31
31
24
25
27
25
37
35
39
31
23
31
24
23
26
26
34
34
29
36
23
29
36
23
30
29
24
24
30
29
21
21
25
25
33
33
28
28
39
39
30
30
32
27
32
27
32
32
32
32
28
28
35
26
26
26
26
33
33
30
30
35
35
24
35
22
22
40
24
40
31
37
31
37
23
23
32
32
39
39
32
65
65
31
22
30
32
65
65
31
22
30
36
33
36
33
39
39
36
36
19
19
33
33
33
33
29
29
23
23
20
20
28
28
33
33
26
26
35
25
25
26
24
26
24
41
29
41
29
36
36
33
22
33
22
20
26
30
33
33
35
20
26
30
28
28
29
29
28
28
29
28
28
29
29
29
29
39
39
39
30
29
39
30
29
29
32
32
35
40
35
40
37
30
30
31
31
31
31
30
24
37
24
30
26
26
47
38
33
22
29
34
25
38
32
31
37
20
47
38
33
22
29
34
25
38
32
31
29
28
37
38
36
37
31
26
24
30
22
45
18
24
21
26
18
36
37
20
41
41
31
35
26
26
33
32
34
33
34
38
29
29
44
31
28
26
20
33
42
33
21
31
26
28
36
18
36
37
30
38
20
21
41
34
41
31
35
26
26
33
32
34
33
32
30
33
41
41
36
45
26
37
32
30
33
41
41
36
45
26
37
23
32
22
28
35
32
40
36
22
30
24
25
27
35
25
26
36
20
57
28
32
23
41
28
29
23
38
22
47
35
40
36
22
32
26
31
25
34
38
31
31
37
47
18
31
32
26
36
31
35
25
27
35
25
26
36
20
57
28
32
23
41
28
29
29
33
24
25
32
29
30
32
28
27
26
30
31
29
33
24
25
32
29
30
32
28
27
26
30
31
33
43
35
28
27
33
34
24
19
36
29
33
30
36
35
30
33
29
26
26
29
31
33
43
18
33
34
24
19
36
29
29
31
31
18
42
33
30
36
35
30
33
29
26
26
36
38
32
21
24
22
29
31
24
30
33
37
36
38
32
21
24
22
29
31
24
30
33
37
29
38
31
28
28
39
30
39
29
38
31
28
28
39
30
39
33
31
18
35
35
26
38
32
29
45
25
34
32
27
31
31
31
36
25
25
34
32
27
31
31
31
36
25
39
28
22
32
28
36
21
36
29
49
21
38
32
29
35
36
32
25
23
35
41
33
32
21
38
32
29
35
36
32
25
23
35
41
33
32
33
25
29
35
23
24
34
28
30
31
30
27
44
37
28
35
59
33
29
31
23
31
32
35
24
23
34
32
32
29
35
20
29
31
23
29
28
37
38
36
29
31
23
30
22
26
27
25
16
27
33
35
31
37
26
32
24
45
18
24
33
35
37
32
26
27
25
16
27
35
27
32
32
33
26
19
27
34
38
29
29
44
31
28
26
20
33
42
33
31
28
36
35
27
32
32
33
26
19
27
30
38
21
34
34
32
31
31
37
28
32
18
30
31
24
36
25
35
31
35
42
28
27
33
25
29
35
23
24
34
28
30
39
28
22
32
28
36
21
36
29
49
30
26
35
37
29
30
27
32
30
28
31
30
27
44
37
28
32
26
24
35
37
29
23
30
32
32
27
32
30
28
35
31
35
29
28
39
28
35
31
35
29
28
39
59
33
29
31
23
31
30
35
34
29
28
30
32
25
30
34
26
30
32
25
30
34
26
31
24
38
29
32
30
23
24
29
24
42
26
33
32
31
26
24
31
32
32
38
29
23
34
25
30
22
35
38
27
33
23
26
34
25
27
29
30
22
35
38
27
33
33
31
18
35
35
26
38
32
29
45
30
24
30
29
34
29
32
30
23
24
29
24
42
26
33
32
31
26
24
32
30
32
30
29
34
29
29
26
27
21
36
31
27
31
31
26
33
36
36
31
21
36
31
27
31
31
26
33
36
36
31

In [ ]: