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中的hashlib和base64加密模块使用实例
Sep 02 Python
python实现多线程暴力破解登陆路由器功能代码分享
Jan 04 Python
Python中shutil模块的常用文件操作函数用法示例
Jul 05 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
从头学Python之编写可执行的.py文件
Nov 28 Python
python使用opencv按一定间隔截取视频帧
Mar 06 Python
Python使用线程来接收串口数据的示例
Jul 02 Python
Python实现代码统计工具
Sep 19 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
Python:合并两个numpy矩阵的实现
Dec 02 Python
django有外键关系的两张表如何相互查找
Feb 10 Python
python模板入门教程之flask Jinja
Apr 11 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
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
PHP截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
利用PHP命令行模式采集股票趋势信息
2016/08/09 PHP
jquery 学习之二 属性相关
2010/11/23 Javascript
jquery 通过name快速取值示例
2014/01/24 Javascript
控制input输入框中提示信息的显示和隐藏的方法
2014/02/12 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
jQuery密码强度验证控件使用详解
2017/01/05 Javascript
vue跨域解决方法
2017/10/15 Javascript
jquery select插件异步实时搜索实例代码
2017/10/20 jQuery
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
[01:19:34]2014 DOTA2国际邀请赛中国区预选赛 New Element VS Dream time
2014/05/22 DOTA
Python sys.path详细介绍
2013/10/17 Python
Python判断操作系统类型代码分享
2014/11/22 Python
浅析Python中signal包的使用
2015/11/13 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
使用python3+xlrd解析Excel的实例
2018/05/04 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
Python通过4种方式实现进程数据通信
2020/03/12 Python
大学生社会实践活动总结
2014/07/03 职场文书
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android
SQL实战演练之网上商城数据库商品类别数据操作
2021/10/24 MySQL