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字符串详细介绍
May 09 Python
Python使用shelve模块实现简单数据存储的方法
May 20 Python
django使用xlwt导出excel文件实例代码
Feb 06 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
Mar 22 Python
python基础教程项目四之新闻聚合
Apr 02 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
pycharm 在windows上编辑代码用linux执行配置的方法
Oct 27 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
Aug 06 Python
python基础 range的用法解析
Aug 23 Python
python实现学生信息管理系统(精简版)
Nov 27 Python
python 获取谷歌浏览器保存的密码
Jan 06 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函数
2006/10/09 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
2013/12/12 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
详解JavaScript权威指南之对象
2016/09/27 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
vue写一个组件
2018/04/09 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
Python中实现结构相似的函数调用方法
2015/03/10 Python
python协程之动态添加任务的方法
2019/02/19 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
介绍一下.net和Java的特点和区别
2012/09/26 面试题
医学院毕业生自荐信范文
2014/03/06 职场文书
2014年保洁工作总结
2014/11/24 职场文书
个人总结与自我评价
2015/02/14 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js