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笔记(叁)继续学习
Oct 24 Python
python执行get提交的方法
Apr 29 Python
python下读取公私钥做加解密实例详解
Mar 29 Python
python中安装模块包版本冲突问题的解决
May 02 Python
Python实现接受任意个数参数的函数方法
Apr 21 Python
解决pandas使用read_csv()读取文件遇到的问题
Jun 15 Python
Python基于opencv实现的简单画板功能示例
Mar 04 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 Python
Python实现 PS 图像调整中的亮度调整
Jun 28 Python
Tkinter中复选菜单是否被选中的判断与设置方式
Mar 04 Python
keras训练浅层卷积网络并保存和加载模型实例
Jul 02 Python
python音频处理的示例详解
Dec 23 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创建PDF中文文档
2006/10/09 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
功能强大的php文件上传类
2016/08/29 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
JavaScript的目的分析
2007/01/05 Javascript
js滚动条多种样式,推荐
2007/02/05 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
Vue中对iframe实现keep alive无刷新的方法
2019/07/23 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
python base64 decode incorrect padding错误解决方法
2015/01/08 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
django最快程序开发流程详解
2019/07/19 Python
Python any()函数的使用方法
2019/10/28 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
前端canvas动画如何转成mp4视频的方法
2019/06/17 HTML / CSS
文秘专业大学生求职信
2013/11/10 职场文书
资产经营总监岗位职责
2013/12/04 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
党校学习党性分析材料
2014/12/19 职场文书
专家推荐信范文
2015/03/26 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书