Python Django / Flask如何使用Elasticsearch


Posted in Python onApril 19, 2022

Elasticsearch之Python使用

from elasticsearch import Elasticsearch
obj = 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'])

Elasticsearch之Django/Flask集成

elasticsearch-dsl

#安装: pip3 install elasticsearch-dsl
#示例
from datetime import datetime
from elasticsearch_dsl import Document, Date, Nested, Boolean, \
    analyzer, InnerDoc, Completion, Keyword, Text
html_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_at
class 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)

django集成

from datetime import datetime
from elasticsearch_dsl import Document, Date, Nested, Boolean,analyzer, InnerDoc, Completion, Keyword, Text,Integer
from elasticsearch_dsl.connections import connections
connections.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()

以上就是Elasticsearches之python使用及Django与Flask集成示例的详细内容!

Python 相关文章推荐
pygame学习笔记(3):运动速率、时间、事件、文字
Apr 15 Python
python实现的希尔排序算法实例
Jul 01 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
python:接口间数据传递与调用方法
Dec 17 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
Dec 31 Python
Python流程控制 while循环实现解析
Sep 02 Python
python做接口测试的必要性
Nov 20 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
django rest framework serializers序列化实例
May 13 Python
python 实现学生信息管理系统的示例
Nov 28 Python
Python中Permission denied的解决方案
Apr 02 Python
python中mongodb包操作数据库
Apr 19 #Python
Elasticsearch 聚合查询和排序
Apr 19 #Python
Elasticsearch 基本查询和组合查询
Apr 19 #Python
Elasticsearch 批量操作
Apr 19 #Python
Elasticsearch 数据类型及管理
Apr 19 #Python
Elasticsearch 索引操作和增删改查
Apr 19 #Python
python中redis包操作数据库的教程
Apr 19 #Python
You might like
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
php无限极分类实现的两种解决方法
2013/04/28 PHP
php实例分享之二维数组排序
2014/05/15 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
关于php中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
jquery垂直公告滚动实现代码
2013/12/08 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
[52:20]DOTA2-DPC中国联赛正赛 SAG vs XGBO3 第一场 3月5日
2021/03/11 DOTA
python判断windows系统是32位还是64位的方法
2015/05/11 Python
Python多层装饰器用法实例分析
2018/02/09 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
Python实现性能自动化测试竟然如此简单
2019/07/30 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
Python selenium模块实现定位过程解析
2020/07/09 Python
巧用CSS3的calc()宽度计算做响应模式布局的方法
2018/03/22 HTML / CSS
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
财务总经理岗位职责
2014/02/16 职场文书
婚纱摄影师求职信范文
2014/04/17 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
暑期社会实践证明书
2014/11/17 职场文书
python通过opencv调用摄像头操作实例分析
2021/06/07 Python
Redis中key的过期删除策略和内存淘汰机制
2022/04/12 Redis