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写的一个简单DNS服务器实例
Jun 04 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
python ansible服务及剧本编写
Dec 29 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 Python
python实现简单遗传算法
Mar 19 Python
Python实现获取前100组勾股数的方法示例
May 04 Python
python批量修改图片大小的方法
Jul 24 Python
django-rest-framework 自定义swagger过程详解
Jul 18 Python
对于Python深浅拷贝的理解
Jul 29 Python
Django 创建新App及其常用命令的实现方法
Aug 04 Python
Python项目打包成二进制的方法
Dec 30 Python
python模块与C和C++动态库相互调用实现过程示例
Nov 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程序员的13个好习惯小结
2012/02/20 PHP
thinkphp中连接oracle时封装方法无法用的解决办法
2013/06/17 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
自己动手写的jquery分页控件(非常简单实用)
2015/10/28 Javascript
理解javascript闭包
2015/12/15 Javascript
JavaScript模拟数组合并concat
2016/03/06 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
Python实现控制台输入密码的方法
2015/05/29 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
2016/11/16 Python
python表格存取的方法
2018/03/07 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
安全生产实施方案
2014/02/23 职场文书
文化宣传方案
2014/03/13 职场文书
美术指导求职信
2014/03/17 职场文书
党员承诺书范文
2014/05/19 职场文书
大国崛起英国观后感
2015/06/02 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS
Python机器学习之逻辑回归
2021/05/11 Python
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python