文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

elasticsearch API使用方

2023-01-31 05:58

关注


安装模块

pip install elasticsearch

创建连接

from elasticsearch import Elasticsearch

es = Elasticsearch(['192.168.1.1:9200'])

 

多节点

es = Elasticsearch(['192.168.1.1:9200',’192.168.1.2:9200’])

支持SSL的连接

es = Elasticsearch(

      ['localhost:443', 'other_host:443'],

      # turn on SSL

      use_ssl=True,

      # make sure we verify SSL certificates (off by default)

      verify_certs=True,

      # provide a path to CA certs on disk

      ca_certs='/path/to/CA_certs'

)

 

 

创建索引

es.indices.create(index='test_index', ignore=400)

es.indices.delete(index='test_index', ignore=[400, 404])

ignore可以忽略异常,其值是需要忽略的异常对应的返回码,常见的有400表示索引已存在,404表示索引没找到。

使用自定义映射创建索引:

mapping = {

    "mappings": {

      "test_type": {

        "properties": {

          "name": {

            "type":    "string",

            "index": "not_analyzed"

          },

          "phone": {

            "type":    "string",

            "index": "not_analyzed"

          }

        }

      }

  }

}

es.indices.create(index='test_index',ignore=400,body=mapping)

查看索引的映射:

es.indices.get_mapping("test_index")

 

写入数据

插入一条:

es.index(index='test_index’,doc_type='test_type',body={“key”:”value”})

批量写入:

doc = [

       {"index": {}},

       {'name': 'Jack', 'phone': '123456'},

       {"index": {}},

       {'name': 'Joe', 'phone': '321456' },

       {"index": {}},

       {'name': 'Nicole', 'phone': '654321'},

       {"index": {}},

       {'name': 'Lucy', 'phone': '456123'},

 ]

es.bulk(index='test_index',doc_type='test_type',body=doc)

 

删除数据

根据id删除一条数据

es.delete(index="test_index",doc_type="test_type",id="ZTg5IGMBxTpLs9ylvHBz")

根据查询条件删除数据:

body = {

      "query":{

            "match":{

                "name":   "Joe"

            }

          }

}

es.delete_by_query(index='test_index',doc_type='test_type',body=body)

 

查询

查询所有数据

body = {

    "query":{

          "match_all":{}

    }

}

es.search(index="test_index",doc_type="test_type",body=body)

或者

es.search(index="test_index",doc_type="test_type")

完全匹配term:

#搜索name字段为Nicole的数据

body = {

      "query":{

            "term":{

                "name":   "Nicole"

            }

          }

}

es.search(index="test_index",doc_type="test_type",body=body)

关键字匹配match:

#搜索name字段包含Nicole关键字的数据

body = {

      "query":{

            "match":{

                "name":   "Nicole"

            }

          }

}

es.search(index="test_index",doc_type="test_type",body=body)

bool联合查询,bool有3类查询关系,must(都满足),should(其中一个满足),must_not(都不满足)

#搜索name为Nicole并且phone为123456的数据

body = {

    "query":{

        "bool":{

              "must":[

                {

                      "term":{

                          "name": "Nicole"

                    }

                },

                {

                      "term":{

                          "phone": “123456”

                    }

                }

            ]

        }

    }

}

es.search(index="test_index",doc_type="test_type",body=body)

 


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯