zoukankan      html  css  js  c++  java
  • 封装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
  • 相关阅读:
    生成排列与生成子集
    赛后总结AtCoder Beginner Contest 090(Beginner)
    树状数组笔记
    论怎么记住tarjan的板子
    tarjan缩点-受欢迎的牛-笔记
    tarjan模板(%%%hzwer)-2.0
    tarjan模板(%%%hzwer)
    匈牙利算法学习笔记
    最短路-Car的旅行路线
    数据结构 笔记1 搜索树
  • 原文地址:https://www.cnblogs.com/wuzhibinsuib/p/13437140.html
Copyright © 2011-2022 走看看