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 相关文章推荐
python基础_文件操作实现全文或单行替换的方法
Sep 04 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
Dec 08 Python
用pandas按列合并两个文件的实例
Apr 12 Python
python机器学习之KNN分类算法
Aug 29 Python
python计算两个矩形框重合百分比的实例
Nov 07 Python
python opencv 图像拼接的实现方法
Jun 27 Python
python之PyQt按钮右键菜单功能的实现代码
Aug 17 Python
python 实现矩阵按对角线打印
Nov 29 Python
python绘制封闭多边形教程
Feb 18 Python
Opencv python 图片生成视频的方法示例
Nov 18 Python
利用Python+OpenCV三步去除水印
May 28 Python
baselines示例程序train_cartpole.py的ImportError
May 20 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 和 MySQL 基础教程(四)
2006/10/09 PHP
PHP 源代码压缩小工具
2009/12/22 PHP
用PHP实现的四则运算表达式计算实现代码
2011/08/02 PHP
详解yii2实现分库分表的方案与思路
2017/02/03 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
Exitjs获取DataView中图片文件名
2009/11/26 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
详解javascript中var与ES6规范中let、const区别与用法
2020/01/11 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
操作Windows注册表的简单的Python程序制作教程
2015/04/07 Python
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
独特的python循环语句
2016/11/20 Python
python 全局变量的import机制介绍
2017/09/07 Python
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
python实现京东秒杀功能
2018/07/30 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
Python文件操作基础流程解析
2020/03/19 Python
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
数控专业个人求职信范文
2014/02/05 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
python中的被动信息搜集
2021/04/29 Python