• 封装pyES 通用模块


    from elasticsearch import Elasticsearch
    
    
    class elasticSearch():
    
        def __init__(self, index_type: str, index_name: str, ip="127.0.0.1"):
    
            # self.es = Elasticsearch([ip], http_auth=('elastic', 'password'), port=9200)
            self.es = Elasticsearch("localhost:9200")
            self.index_type = index_type
            self.index_name = index_name
    
        def create_index(self):
            if self.es.indices.exists(index=self.index_name) is True:
                self.es.indices.delete(index=self.index_name)
            self.es.indices.create(index=self.index_name, ignore=400)
    
        def delete_index(self):
            try:
                self.es.indices.delete(index=self.index_name)
            except:
                pass
    
        def get_doc(self, uid):
            return self.es.get(index=self.index_name, id=uid)
    
        def insert_one(self, doc: dict):
            self.es.index(index=self.index_name, doc_type=self.index_type, body=doc)
    
        def insert_array(self, docs: list):
            for doc in docs:
                self.es.index(index=self.index_name, doc_type=self.index_type, body=doc)
    
        def search(self, query, count: int = 30):
            dsl = {
                "query": {
                    "multi_match": {
                        "query": query,
                        "fields": ["title", "content", "link"]
                    }
                },
                "highlight": {
                    "fields": {
                        "title": {}
                    }
                }
            }
            match_data = self.es.search(index=self.index_name, body=dsl, size=count)
            return match_data
    
        def __search(self, query: dict, count: int = 20):
            results = []
            params = {
                'size': count
            }
            match_data = self.es.search(index=self.index_name, body=query, params=params)
            for hit in match_data['hits']['hits']:
                results.append(hit['_source'])
    
            return results
    
    
    if __name__=="__main__":
        es = elasticSearch(index_name='huangshen',index_type="user")
        print(es.get_doc(uid=1))
    人生苦短,我用cnblog
  • 相关阅读:
    大端法小端法以及判断方法
    多线程的同步互斥
    LeetCode344 字符串反转
    LeetCode977 有序数组的平方
    剑指54 二叉搜索树的第k大节点
    Linux抓包工具tcpdump使用总结,WireShark的过滤用法
    二进制部署k8s集群(8):安装容器网络插件Flannel
    python--Yaml操作
    python--读写excle执行测试用例
    python--安装、操作mysql数据库
  • 原文地址:https://www.cnblogs.com/wuzhibinsuib/p/13437140.html
Copyright © 2020-2023  润新知