ES 学习

1、安装遇到的坑

安装ES:

  1. 需要在配置关闭ssl验证
  2. 安装过程中有打印密码等信息,可以复制,也可以用elasticsearch-reset-password.bat重置密码

安装kibana:

  1. 需要配置es地址
  2. 提示没有登陆,配置了账号密码,然后提示不能用elastic账号,可以用token,用elasticsearch-service-tokens.bat获取了token,配置后启动成功(获取账号时需要是elastic/kibana命名空间的 不能是elastic/fleet-server的)

2、简介

简介参考:
在这里插入图片描述

3、简单使用

查:示例
改:示例

//链接
$e = \Elasticsearch\ClientBuilder::create()
->setBasicAuthentication('elastic', '密码')		//用户名密码
//->setApiKey() //api登录(用户名2选1)
->setHosts(['127.0.0.1:9200'])			//改端口
->build();

//版本信息
$elastic = $e->info();
//索引存在
$e->indices()->exists(['index' => 'k']);
//创建简单索引
$e->indices()->create(['index' => 'k']);
//获取索引映射
$e->indices()->getMapping(['index' => 'k']);
//更新索引影射
$client->update($params);
//增
$e->index(['index' => 'k', 'body' => ['dd' => date('Y-m-d H:i:s')]])
//ID单查
$e->get(['index' => 'k', 'id' => 'PbudUYEBuG61Ky6oi7Pk'])
//模糊查询
$params = [
    'index' => 'k',
    'body' => [
        'query' => [
            'match' => [
                'dd' => '2022'
            ]
        ]
    ]
];
$e->search($params);
//改
$params = [
     'index' => 'k',
     'id' => 'P7vCUYEBuG61Ky6otrO5',
     'body' => [
         'doc' => [
             'dd' => '2022'
         ]
     ]
 ];
 $e->update($params);
//删
$e->deleteByQuery($params);
//删除索引
$e->indices()->delete(['index' => 'k']);

4、坑

count(distinct)查询精确度问题

//precision_threshold:接受 0–40000 之间的数字,更大的值还是会被当作 40000 来处理。
GET /myindex/mytype/_search
{
    "size" : 0,
    "aggs" : {
        "distinct_idCard" : {
            "cardinality" : {
              "field" : "idCard",
              "precision_threshold" : 100 
            }
        }
    }
}

5、kibana的dev tools使用

//SQL查询
POST /_sql?format=txt
{
  "query" :"SELECT DISTINCT createDate FROM index"
}

//查询ES语法
POST /_sql/translate
{
  "query": "SELECT count(DISTINCT amazonOrderId) from es_index_order_item_list_ori where purchaseDate>=1654012800 AND purchaseDate<1654099200 AND showName = 'BPQE-US' AND orderStatus IN ('Pending', 'Unshipped', 'Shipped')"
}
  
//删除索引
DELETE /es_index_am_sales_seller_sku
<think> 首先,用户的问题是“ES学习”,这是一个非常模糊的提示。我需要理解“ES”指的是什么。根据常见上下文,“ES”可能代表“Elasticsearch”,一个流行的搜索和分析引擎。它也可能代表其他东西,比如“Elastic Stack”或“ES”作为某个领域的缩写。但考虑到技术上下文,Elasticsearch 是最可能的含义。 用户说:“ES学习”,意思是“学习ES”,所以我应该提供一个关于学习Elasticsearch的简短介绍或关键点。 我的回答需要: 1. 使用中文回答问题。 2. 在回答完问题后,必须根据用户的问题及我的回答提出3-5个相关问题。 3. 相关问题必须以“§§相关问题§§”开头,并且输出在回答的末尾。 4. 第一行必须完整输出“§§相关问题§§”,然后列出相关问题。 5. 禁止换行分散,意思是相关问题部分不能有换行或其他分散内容;应该紧凑输出。 格式示例: - 先回答问题。 - 然后输出“§§相关问题§§”。 - 接着列出1. 2. 3. 等问题。 所以,结构是: - 回答部分。 - 然后是“§§相关问题§§”。 - 最后是相关问题列表。 现在,构建回答: - 问题:ES学习学习Elasticsearch)。 - 回答:简要介绍Elasticsearch是什么、核心概念、如何开始学习等。 - Elasticsearch是一个基于Lucene的分布式搜索和分析引擎。 - 它用于实时搜索、日志分析等。 - 关键概念:索引、类型、文档、查询等。 - 学习资源:官方文档、教程等。 目标是简洁,因为用户的问题很简短。 然后,基于回答提出3-5个相关问题: - 相关问题应该与用户的问题和我的回答相关。 - 例如: 1. Elasticsearch的基本组件有哪些? 2. 如何安装和配置Elasticsearch? 3. 什么是倒排索引? 4. 如何执行一个简单的查询? 5. Elasticsearch与Kibana如何整合? 确保有3-5个。 最后,输出: - 回答结束。 - §§相关问题§§ - 1. ... - 2. ... - 3. ... 现在,写回答: - 开头:解释ESElasticsearch的缩写。 - 然后给出关键学习点。 - 结束回答。 - 输出相关问题部分。 完整响应: [回答部分] §§相关问题§§ 1. ... 2. ... 3. ... </think>ES(通常指Elasticsearch)是一个开源的分布式搜索和分析引擎,基于Apache Lucene构建,用于实时处理大规模数据。学习ES的关键点包括: - **核心概念**:理解索引(Index)、文档(Document)、分片(Shard)和类型(Type,在较新版本中已弃用)。 - **基本操作**:学习如何通过RESTful API进行数据索引、搜索和聚合。 - **安装与配置**:从官方文档开始,下载并运行Elasticsearch实例,熟悉配置文件(如elasticsearch.yml)。 - **工具整合**:结合Kibana进行可视化,或使用Logstash导入数据。 - **学习资源**:推荐Elastic官方文档、在线教程(如Elasticsearch: The Definitive Guide)和社区论坛。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值