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的Tornado框架对子域名和泛域名的支持
May 02 Python
通过实例浅析Python对比C语言的编程思想差异
Aug 30 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
May 25 Python
Python执行时间的计算方法小结
Mar 17 Python
python之pyqt5通过按钮改变Label的背景颜色方法
Jun 13 Python
Flask配置Cors跨域的实现
Jul 12 Python
在VS2017中用C#调用python脚本的实现
Jul 31 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 Python
详解python 内存优化
Aug 17 Python
python中类与对象之间的关系详解
Dec 16 Python
python UIAutomator2使用超详细教程
Feb 19 Python
Python实现科学占卜 让视频自动打码
Apr 09 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
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
Javascript - HTML的request类
2007/01/09 Javascript
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
Html5+jQuery+CSS制作相册小记录
2016/12/30 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
vue 插槽简介及使用示例
2020/11/19 Vue.js
Python数据类型学习笔记
2016/01/13 Python
Python3中详解fabfile的编写
2018/06/24 Python
python3学生名片管理v2.0版
2018/11/29 Python
python实现二维插值的三维显示
2018/12/17 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
给Python学习者的文件读写指南(含基础与进阶)
2020/01/29 Python
HTML5中的websocket实现直播功能
2018/05/21 HTML / CSS
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
德国W家官网,可直邮中国的母婴商城:Windeln.de
2021/03/03 全球购物
土木工程专业个人求职信
2013/12/05 职场文书
土木建筑学生自我评价
2014/01/14 职场文书
秘书英文求职信
2014/04/16 职场文书
幼儿园小班评语
2014/04/18 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
2014年团总支工作总结
2014/11/21 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
班主任寄语2016
2015/12/04 职场文书
《穷人》教学反思
2016/02/19 职场文书
Python自动化实战之接口请求的实现
2022/05/30 Python
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS