首页 > 其他分享 >Elasticsearch之-Django框架集成

Elasticsearch之-Django框架集成

时间:2024-04-11 14:36:48浏览次数:22  
标签:集成 title Text self analyzer Django Elasticsearch Article datetime

目录

Elasticsearch之-Django框架集成

  • 需要安装的库:安装: pip3 install elasticsearch-dsl

一、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()

标签:集成,title,Text,self,analyzer,Django,Elasticsearch,Article,datetime
From: https://www.cnblogs.com/Mcoming/p/18129075

相关文章

  • 【Python】Django中的static资源访问404的问题
    [本文出自天外归云的博客园]如果你发现你本地部署没问题,部署到生产环境服务器后提示404找不到静态资源文件。不是你的代码有问题,而是你没有使用--insecure参数启动服务。pythonmanage.pyrunserver0.0.0.0:8000--insecure但是这个insecure参数在Django4中已经去掉了,所以......
  • Python+Django+Html网页版人脸识别考勤打卡系统
    程序示例精选Python+Django+Html人脸识别考勤打卡系统如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!前言这篇博客针对《Python+Django+Html网页版人脸识别考勤打卡系统》编写代码,代码整洁,规则,易读。学习与应用推荐首选。运行结果文章......
  • python计算机毕设【附源码】养老院管理系统(django+mysql+论文)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着社会的快速发展,人口老龄化问题日益凸显。养老院作为为老年人提供居住、医疗、康复、娱乐等综合服务的场所,其管理水平和服务质量对老年人的生活质量有着......
  • Elasticsearch 创建自定义分析器(4)
    一.自定义分析器当内置分析器不能满足时,可以创建一个自定义分析器,自定义分析器(analyzer)由:1)0或多个charactcrfilter字符过滤器2) 1个tokenizer分词器,将文本切分为分词  3)0或多个tokenfilter令牌过滤器,是属于分词后再过......
  • PageOffice6最简集成代码(.NetCore)
    本文描述了PageOffice产品在.NetCore项目中如何集成调用。新建.NetCore项目:PageOffice6-Net-Core-Simple在此项目的“依赖项-包-管理NuGet程序包”中搜索到“Zhuozhengsoft.PageOffice"程序后安装最新版本。下载PageOffice客户端安装程序。windows客户端安装程序:posetup_6.......
  • Django ModelSerializer 中如何实现自定义验证
    随着Web开发的日益复杂化,对数据验证的需求也日益增加。DjangoRESTframework提供了一套强大的、灵活的验证系统,帮助开发者轻松处理各种复杂情况。本文将重点探讨DjangoModelSerializer中如何实现自定义验证。1.简介DjangoModelSerializer不仅简化了序列化过程,还内建了......
  • LLM应用实战:当KBQA集成LLM
    1.背景应项目需求,本qiang~这两周全身心投入了进去。项目是关于一个博物馆知识图谱,上层做KBQA应用。实现要求是将传统KBQA中的部分模块,如NLU、指代消解、实体对齐等任务,完全由LLM实现,本qiang~针对该任务还是灰常感兴趣的,遂开展了项目研发工作。注意,此篇是纯纯的干货篇,除了源码......
  • ElasticSearch
    1.ES是什么https://www.elastic.co/cn/https://www.elastic.co/cn/elastic-stack/1.从事运维,开发,大数据的人员需要学习ElasticSearch数据库2.需要配置日志分析架构,配置ELK技术栈lucene搜索引擎库https://lucene.apache.org/core/ApacheLucene™是一个完全用Java......
  • django simpleui 的list_display添加自定义列、显示图片 及alert弹窗的设置方法
    参考djangosimpleui的list_display添加自定义列、显示图片及alert弹窗的设置方法-CSDN博客环境:python:3.8.xDjango:3.2.xDjango-simpleui:2021.x先定义下模型#models.pyclassDog(models.Model):name=models.CharField(max_length=15,verbose_name='小狗名字')......
  • 运维系列(亲测有效):利用 PHPStuday 2018 集成化工具对Apache进行站点域名管理
    利用PHPStuday2018集成化工具对Apache进行站点域名管理利用PHPStuday2018集成化工具对Apache进行站点域名管理利用PHPStuday2018集成化工具对Apache进行站点域名管理第一步:第二步:第三步:第四步:第五步:利用PHPStuday2018集成化工具对Apache进行站点域......