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模拟鼠标拖动操作的方法
Mar 11 Python
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
Mar 30 Python
python解决网站的反爬虫策略总结
Oct 26 Python
python中的随机函数小结
Jan 27 Python
python实现12306抢票及自动邮件发送提醒付款功能
Mar 08 Python
pycharm: 恢复(reset) 误删文件的方法
Oct 22 Python
python区块及区块链的开发详解
Jul 03 Python
如何使用python操作vmware
Jul 27 Python
Python生命游戏实现原理及过程解析(附源代码)
Aug 01 Python
Python原始套接字编程实例解析
Jan 29 Python
Python基础之列表常见操作经典实例详解
Feb 26 Python
Django 构建模板form表单的两种方法
Jun 14 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 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
2010/05/26 PHP
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
vue 微信授权登录解决方案
2018/04/10 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
Vue.js实现可编辑的表格
2019/12/11 Javascript
Vue实现摇一摇功能(兼容ios13.3以上)
2021/01/26 Vue.js
在Python中使用Neo4j数据库的教程
2015/04/16 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
学会迭代器设计模式,帮你大幅提升python性能
2021/01/03 Python
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
2014信息公开实施方案
2014/02/22 职场文书
员工薪酬激励方案
2014/06/13 职场文书
安全责任书怎么写
2014/07/28 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
财政局长个人总结
2015/03/04 职场文书
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android