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 lxml模块安装教程
Jun 02 Python
Django原生sql也能使用Paginator分页的示例代码
Nov 15 Python
在python中实现调用可执行文件.exe的3种方法
Jul 07 Python
如何通过python的fabric包完成代码上传部署
Jul 29 Python
基于python读取.mat文件并取出信息
Dec 16 Python
python super用法及原理详解
Jan 20 Python
python实现跨excel sheet复制代码实例
Mar 03 Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 Python
利用Python实现某OA系统的自动定位功能
May 27 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
Feb 20 Python
一文搞懂python异常处理、模块与包
Jun 26 Python
Python Pygame实战之塔防游戏的实现
Mar 17 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 手机归属地查询 api
2010/02/08 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
php函数连续调用实例分析
2015/07/30 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
php 数组元素快速去重
2017/05/05 PHP
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
Javascript中的isNaN函数使用说明
2011/11/10 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
Python中表示字符串的三种方法
2017/09/06 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
Python如何执行系统命令
2020/09/23 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
如何查找和删除数据库中的重复数据
2014/11/05 面试题
启动一个线程是用run()还是start()
2016/12/25 面试题
打架检讨书100字
2014/01/19 职场文书
促销活动总结报告
2014/04/26 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书