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函数返回多个值的示例方法
Dec 04 Python
Python文档生成工具pydoc使用介绍
Jun 02 Python
python中实现k-means聚类算法详解
Nov 11 Python
VTK与Python实现机械臂三维模型可视化详解
Dec 13 Python
python中时间模块的基本使用教程
May 14 Python
python的内存管理和垃圾回收机制详解
May 18 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
Aug 01 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
Python列表如何更新值
May 27 Python
Python爬虫入门有哪些基础知识点
Jun 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中对2个数组相加的函数
2011/06/24 PHP
php常用Stream函数集介绍
2013/06/24 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
php中heredoc与nowdoc介绍
2014/12/25 PHP
PHP闭包函数详解
2016/02/13 PHP
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
简单的js计算器实现
2016/10/26 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
2016/12/28 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
使用Node.js实现一个多人游戏服务器引擎
2019/03/13 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
使用setup.py安装python包和卸载python包的方法
2013/11/27 Python
Python代码实现KNN算法
2017/12/20 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
Keras设置以及获取权重的实现
2020/06/19 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
论文指导教师评语
2014/04/28 职场文书
欢迎领导检查标语
2014/06/27 职场文书
学习礼仪心得体会
2014/09/01 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
大学教师个人总结
2015/02/10 职场文书
淮海战役观后感
2015/06/11 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python