赞
踩
本文为博主原创,未经授权,严禁转载及使用。
本文链接:https://blog.csdn.net/zyooooxie/article/details/123730279
之前在测试环境查es数据,在用 Kibana;可下半年,因为某些原因 就不能用了。我就想着用代码来搞了。简单分享下。
【实际这篇博客推迟发布N个月】
个人博客:https://blog.csdn.net/zyooooxie
【以下所有内容仅为个人项目经历,如有不同,纯属正常】
Elasticsearch是一个开源的分布式搜索和分析引擎,用于存储、搜索和分析大量的数据。它是基于Apache Lucene库构建的,并提供了一个简单的RESTful API,使用户可以轻松地进行数据索引、搜索和分析。
Elasticsearch具有以下特点:
分布式架构:Elasticsearch可以水平扩展,将数据分布在多个节点上,实现高可用性和性能的提升。
实时搜索:Elasticsearch支持实时索引和搜索,可以在毫秒级别内返回搜索结果。
多种查询方式:Elasticsearch提供了丰富的查询语法和功能,包括全文搜索、精确匹配、范围查询等。
多种数据类型支持:Elasticsearch支持多种数据类型的索引和搜索,包括文本、数字、日期、地理位置等。
分布式数据存储:Elasticsearch使用分片和副本机制来存储数据,保证数据的可靠性和高可用性。
实时分析:Elasticsearch提供了强大的聚合功能,可以对数据进行实时的统计和分析。
可扩展性:Elasticsearch可以与其他工具和框架集成,如Logstash、Kibana等,实现全面的数据处理和可视化。
总之,Elasticsearch是一个功能强大、易于使用和可扩展的搜索和分析引擎,适用于各种应用场景,包括日志分析、电子商务、实时监控等。
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search.html
"""
@blog: https://blog.csdn.net/zyooooxie
@qq: 153132336
@email: zyooooxie@gmail.com
"""
import random
import time
import requests
from requests_toolbelt.utils import dump
from XXX.common_es import gl_es_auth, gl_es_host_new
from user_log import Log
from XXX.practice_es_2 import es_send_request
gl_fc_room = 'TESTM7eY-sPd4wxA' # 被拆分成 多个token
gl_No_fc_room = 'TESTDbrMoRzVuuXg'
gl_index = 'ABC-data'
gl_type = '_doc'
gl_url = '/'.join([gl_es_host_new, gl_index, gl_type, '_search'])
# 返回结果中最重要的部分是 hits ,它包含 total 字段来表示匹配到的文档总数,并且一个 hits 数组包含所查询结果的前十个文档。
# 在 hits 数组中每个结果包含文档的 _index 、 _type 、 _id ,加上 _source 字段。这意味着我们可以直接从返回的搜索结果中使用整个文档。
# 在 Elasticsearch 中, 相关性得分 由一个浮点数进行表示,并在搜索结果中通过 _score 参数返回,默认排序是 _score 降序。
# _score ,它衡量了文档与查询的匹配程度。
# 如果不对某一特殊的索引或者类型做限制,就会搜索集群中的所有文档。Elasticsearch 转发搜索请求到每一个主分片或者副本分片,汇集查询出的前10个结果,并且返回给我们。
def test_Search_1():
"""
query-string search 查询字符串
:return:
"""
# https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-search.html#search-search-api-query-params
# GET /{index}/{type}/_search?q=XXX
# 将查询本身赋值给参数 q=
s1 = {'q': 'seq:5'} # 返回 seq等于5 的所有文档
s2 = {'q': '错对123'} # 返回 包含 错对123 的所有文档(默认 十条)
# Elasticsearch 接受 from 和 size 参数,size 显示应该返回的结果数量,默认是 10;from 显示应该跳过的初始结果数量,默认是 0
s3 = {'q': 'text.content:对错123', 'size': 15, 'from': 10}
s4 = {'q': 'text.content:(456 abc)', 'size': 15} # 搜索 多个值
s5 = {'q': 'seq:>99 text.content:错对无所谓'} # 搜索 多个条件、值大于99
# 使用 sort 参数 实现 按照字段的值排序
s6 = {"size": 15, "from": 10, "sort": "seq:desc"}
s7 = {"size": 15, "from": 10, "sort": "seq"}
s8 = {"size": 15, "from": 10}
s9 = {"q": "无所谓ABC", "size": 15, "sort": "seq"} # 字段将会默认升序排序,而按照 _score 的值进行降序排序。
Log.info('********')
search_list = [s6, s7, s8, s9]
# search_list = [s1, s2]
# search_list = [s3, s4, s5]
for s in search_list:
# Basic认证
res = requests.get(gl_url, auth=gl_es_auth, params=s)
Log.info(dump.dump_all(res).decode('utf-8'))
res.close()
time.sleep(1)
Log.error(' 本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。