• DAY 120 ES---Django/Flask集成


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

     

  • 相关阅读:
    Qt生成随机数
    Qt调用系统DLL,判断网络连接状态
    Qt操作sqlite数据库
    Qt 操作注册表
    vs报错:RC1004 unexpected end of file found
    Qt操作ini文件
    Django Admin:自动选择当前用户
    BSTR转QString
    vue-cli4,vue3打包后页面无内容
    Qt 5.12.10 国际化
  • 原文地址:https://www.cnblogs.com/DEJAVU888/p/14921875.html
Copyright © 2020-2023  润新知