Python 操作 ElasticSearch

86 阅读1分钟

配置数据库:

node = ["http://192.168.20.214:9200", "http://192.168.20.215:9200", "http://192.168.20.215:9200"]
es = Elasticsearch(node, timeout=500000)

更新操作:

def update_data():
    doc_body = {
        "script": {
            "source": "ctx._source['info_type']=['时政', '农林牧副渔']"
        },
        "query": {
            "term": {
                "data_id": dataid
                # "data_id": "23b33de84667db37a4f19f5011257f30"
            }
        }
    }
    result = es.update_by_query(index="doc_info_last_1_years", body=doc_body)
    print(result)

update_date()

删除操作:

# 删除数据
def delete_data_id():
    for data_id in ['农业农村部办公厅关于印发《国家级农作物种质资源库(圃)管理规范》的通知']:
        query = {
            "query": {
                "match": {
                    # 'data_id': 'b61d30e206fb20a7cd8228e7bd44b1d5'
                    "title": data_id
                }
            }
        }
        # 条件删除
        es.delete_by_query(index='doc_info_last_1_years', body=query)

查询操作:

# 查询数据
def get_search():
    count_List=[]
    leader_list = []
    query = {
        "query": {
            "match": {
                # "site_name": name
                "data_id": 'f709b6e02e0a399d20323f6d85642197'
            }
        },
        "track_total_hits": "true"
        # "publish_timestamp", "leader_activity", "info_type", "data_id",
        , "_source": ["site_name", "title",  "url",]
        , "size": "2"
    }
    allDoc = es.search(index='doc_info_last_1_months', body=query)
    items = allDoc['hits']['hits']
    # print(items)
    data_list = [i['_source'] for i in items]
    print(len(data_list), name)
    if len(data_list)==0:
        count_List.append(name)
    for data in data_list:
        print(data)
        leader_list.append(deepcopy(data))
    print(count_List)
    print(leader_list)