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采用requests库模拟登录和抓取数据的简单示例
Jul 05 Python
详解Python中的变量及其命名和打印
Mar 11 Python
Python函数式编程
Jul 20 Python
Python读取Word(.docx)正文信息的方法
Mar 15 Python
PyQt5每天必学之进度条效果
Apr 19 Python
numpy实现合并多维矩阵、list的扩展方法
May 08 Python
python破解zip加密文件的方法
May 31 Python
解决PyCharm控制台输出乱码的问题
Jan 16 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
May 10 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
Feb 22 Python
Python超简单容易上手的画图工具库推荐
May 10 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实现禁用IE和火狐的缓存问题
2012/12/03 PHP
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
关于php中一些字符串总结
2016/05/05 PHP
7个Javascript地图脚本整理
2009/10/20 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
transport.js和jquery冲突问题的解决方法
2015/02/10 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
用python代码做configure文件
2014/07/20 Python
Python函数式编程
2017/07/20 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
python写日志文件操作类与应用示例
2019/07/01 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
python 图片二值化处理(处理后为纯黑白的图片)
2019/11/01 Python
python中dict()的高级用法实现
2019/11/13 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
2020/07/20 Python
python drf各类组件的用法和作用
2021/01/12 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
英国最大的网上药品商店:Chemist Direct
2017/12/16 全球购物
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
护理自荐信范文
2013/10/05 职场文书
煤矿班组长的职责
2013/12/25 职场文书
硕士研究生自我鉴定范文
2013/12/27 职场文书
高校教师思想汇报
2014/01/11 职场文书
素质教育标语
2014/06/27 职场文书
金融专业求职信
2014/08/05 职场文书
2014年学校卫生工作总结
2014/11/20 职场文书
2015年中秋晚会主持词
2015/07/01 职场文书