当前位置: 首页 > news >正文

Elasticsearch--Python使用、Django/Flask集成

一、Python使用

from elasticsearch import Elasticsearchobj = Elasticsearch()
# 创建索引(Index)
result = obj.indices.create(index='user', body={"userid":'1','username':'lqz'},ignore=400)
# print(result)
# 删除索引
# result = obj.indices.delete(index='user', ignore=[400, 404])
# 插入数据
# data = {'userid': '1', 'username': 'lqz','password':'123'}
# result = obj.create(index='news', doc_type='politics', id=1, body=data)
# print(result)
# 更新数据
'''
不用doc包裹会报错
ActionRequestValidationException[Validation Failed: 1: script or doc is missing
'''
# data ={'doc':{'userid': '1', 'username': 'lqz','password':'123ee','test':'test'}}
# result = obj.update(index='news', doc_type='politics', body=data, id=1)
# print(result)# 删除数据
# result = obj.delete(index='news', doc_type='politics', id=1)# 查询
# 查找所有文档
query = {'query': {'match_all': {}}}
#  查找名字叫做jack的所有文档
# query = {'query': {'term': {'username': 'lqz'}}}# 查找年龄大于11的所有文档
# query = {'query': {'range': {'age': {'gt': 11}}}}allDoc = obj.search(index='news', doc_type='politics', body=query)
print(allDoc['hits']['hits'][0]['_source'])

二、Django/Flask集成

1、elasticsearch-dsl

#安装: pip3 install elasticsearch-dsl
#示例
from datetime import datetime
from elasticsearch_dsl import Document, Date, Nested, Boolean, \analyzer, InnerDoc, Completion, Keyword, Texthtml_strip = analyzer('html_strip',tokenizer="standard",filter=["standard", "lowercase", "stop", "snowball"],char_filter=["html_strip"]
)class Comment(InnerDoc):author = Text(fields={'raw': Keyword()})content = Text(analyzer='snowball')created_at = Date()def age(self):return datetime.now() - self.created_atclass Post(Document):title = Text()title_suggest = Completion()created_at = Date()published = Boolean()category = Text(analyzer=html_strip,fields={'raw': Keyword()})comments = Nested(Comment)class Index:name = 'blog'def add_comment(self, author, content):self.comments.append(Comment(author=author, content=content, created_at=datetime.now()))def save(self, ** kwargs):self.created_at = datetime.now()return super().save(** kwargs)

2、django集成

from datetime import datetime
from elasticsearch_dsl import Document, Date, Nested, Boolean,analyzer, InnerDoc, Completion, Keyword, Text,Integerfrom elasticsearch_dsl.connections import connectionsconnections.create_connection(hosts=["localhost"])class Article(Document):title = Text(analyzer='ik_max_word', search_analyzer="ik_max_word", fields={'title': Keyword()})author = Text()class Index:name = 'myindex'def save(self, ** kwargs):return super(Article, self).save(** kwargs)if __name__ == '__main__':# Article.init()  # 创建映射# 保存数据# article = Article()# article.title = "测试测试"# article.save()  # 数据就保存了#查询数据# s=Article.search()# s = s.filter('match', title="测试")## results = s.execute()# print(results)#删除数据# s = Article.search()# s = s.filter('match', title="测试").delete()#修改数据# s = Article().search()# s = s.filter('match', title="测试")# results = s.execute()# print(results[0])# results[0].title="xxx"# results[0].save()
http://www.lryc.cn/news/227887.html

相关文章:

  • pyspark将数据多次插入表的时候报错
  • Qt绘制饼状图
  • Vue3 setup函数
  • Django(三、数据的增删改查、Django生命周期流程图)
  • Linux 部署Sentinel控制台
  • 服务器如何下载百度网盘数据
  • POJ 3254 Corn Fields 状态压缩DP(铺砖问题)
  • transformers安装避坑
  • 牛客、赛码网OJ调试(全)
  • 【CSS】全局声明引入自定义字体
  • 「Flask」路由+视图函数
  • 信息系统项目管理师 教材目录、考试大纲、考情
  • python线性回归实现
  • 【JavaEESpring】认识Spring
  • Rust逆向学习 (5)
  • 89.STL-函数对象的使用(仿函数)
  • 文件管理技巧:按文件容量大小分类,自动移动至目标文件夹的方法
  • [架构之路-246]:目标系统 - 设计方法 - 软件工程 - 需求工程- 需求开发:获取、分析、定义、验证
  • 轻量日志管理方案-[EFK]
  • Halcon WPF 开发学习笔记:HSmartWindowControlWPF正常加载
  • mybatis的简单教程
  • 数据结构 队列(C语言实现)
  • Android---屏幕适配的处理技巧
  • vmware workstation 与 device/credential guard 不兼容
  • 第7章-使用统计方法进行变量有效性测试-7.2.1-单因素方差分析
  • 黑客技术-小白学习手册
  • 用示波器测量高压电
  • AQS中Node状态
  • STM32 寄存器配置笔记——GPIO配置输出
  • Spring boot 整合grpc 运用