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 相关文章推荐
pyside写ui界面入门示例
Jan 22 Python
从零学python系列之数据处理编程实例(一)
May 22 Python
python进阶教程之词典、字典、dict
Aug 29 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
May 25 Python
python的变量与赋值详细分析
Nov 08 Python
Python简单获取二维数组行列数的方法示例
Dec 21 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
Python简易版图书管理系统
Aug 12 Python
简单的Python人脸识别系统
Jul 14 Python
Python ConfigParser模块的使用示例
Oct 12 Python
python 通过使用Yolact训练数据集
Apr 06 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 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
ThinkPHP之N方法实例详解
2014/06/20 PHP
基于jquery的$.ajax async使用
2011/10/19 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
AngularJS基础知识
2014/12/21 Javascript
jquery中toggle函数交替使用问题
2015/06/22 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
jQuery上传插件webupload使用方法
2017/08/01 jQuery
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
浅谈python的dataframe与series的创建方法
2018/11/12 Python
Python装饰器简单用法实例小结
2018/12/03 Python
使用python实现飞机大战游戏
2020/03/23 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
建筑工程专业学生的自我评价
2013/12/25 职场文书
中学门卫岗位职责
2013/12/26 职场文书
办理信用卡工作证明
2014/09/30 职场文书
士兵突击观后感
2015/06/16 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
生日宴会祝酒词
2015/08/10 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript