Elasticsearch 学习笔记

  • 基于Apache Lucene 被认为是迄今为止最好的,最先进的,性能最好的,功能最全的搜索引擎库
  • Elasticsearch :
    • 分布式的实时的文件存储,每个字段都被索引并可以被搜索。
    • 分布式的实时分析搜索引擎
    • 可动态扩展,处理PB级别的数据
  • Java API 提供两种内置的客户端
    • node client :节点客户端
      • 以无数据的节点的身份加入到集群中,知道集群的位置,能够将请求直接发送到对应的节点上。
    • Transport client :传输客户端
      • 更轻量的客户端能够发送请求到远程集群,不加入集群,只是简单的转发请求到集群中的节点。
    • 9300端口链接,使用es的传输协议
  • 基本命令:
    • _search:搜索命令
    • query:filtered
    • about :全文搜索 match about
    • match_phrase:短语搜索
    • hightlight:高亮
    • aggs all_interests:可以分级汇总
  • 倒排索引
    • 使用倒排索引,所以es很快
  • 采用乐观并发控制,用version版本号来进行确保修改和删除的
  • 深分页问题
    • 最多1000-5000也就是一次查询10000条
    • es的分页原理是:size 一页的条数,from跳过开始的结果
      • 在集群中分页,需要把所有分片产生的结果汇总然后排序。
      • 例子:假设一个集群中有5个主分片,请求第一页时,每个分片都要查询顶端的10个结果,然后返回请求节点,请求节点排序后在选出TOP10结果。假如请求第1000页,需要查询每个分片数据顶端的10001-10010,然后请求节点对所有的结果也就 [分片数*(分页数+size)]进行排序找出顶端的,在抛弃total -10个记录。排序的结果随着分页的深度成倍的增长
  • 可以动态的水平扩展
  • 确切值查询和全文文本查询
    • 确切值查询:就是存在不存在
    • 全文本:文章,话语,片段
  • 分析和分析器
    • 分析器:当存储的时候会进行分析,进行索引
    • 自定义字段的映射
      • String
        • index:三个属性 analyed 需要分析这个字段,然后索引,not_analyzed 索引这个字段,但是不分析此字段,no 不索引这个字段 默认是 analyed
    • es默认的分析器:standard。可以用analyzer 来设置分析器: whitespace,simple english
  • 结构化查询
    • query bool可以合并多个字句
    • 过滤要比查询快,因为过滤有缓存
      • term 过滤 terms 过滤 range 范围过滤 gt 大于 gte 大于等于 lt 小于 lte 小于等于
    • _validate/query 可以用来检验一天查询语句是不是正确的 _validate/query?explain 可以返回更多的信息
  • 相关性排序:默认排序 scor
    • sort 排序 一般是日期来排序:“sort”:{“date”:{“order”:“desc”}} 会将日期转换成毫秒进行排序,可以进行多级排序。多值排序可以选择mode 包含 min max avg 或者sum模式
  • 查询的步骤:假设有note1 note2 note3,当note3得到一个查询请求时,首先在本地建立一个队列from+size,然后对其他note进行广播,其他节点也取from+size的数据,返回给note3,note3 整理排序。取size个返回,其他的结果舍弃
  • 扫描和滚屏:scan 和scroll 可以取会大量数据而不需要进行深分页。scroll 每一次请求都会返回一个_scroll_id,如果返回null,就是全部查询完成了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
elasticsearch 学习笔记包括以下内容: 一、Elasticsearch概述: - Elasticsearch是一种开源的分布式搜索和分析引擎,可以用于快速搜索、分析和存储大量的结构化和非结构化数据。 - Elasticsearch与Solr相比有一些区别,包括用户、开发和贡献者社区的规模和成熟度等方面。 二、Elasticsearch安装: 1. 下载Elasticsearch,可以从官方网站或华为云镜像下载。 2. 安装Elasticsearch。 三、安装head插件: - head插件是一个可视化的管理界面,可以方便地管理和监控Elasticsearch集群。 四、安装Kibana: 1. Kibana是一个开源的数据可视化工具,用于展示和分析Elasticsearch中的数据。 2. 下载Kibana并安装。 3. 启动Kibana并进行访问测试。 4. 可选的汉化操作。 五、ES核心概念理解: - 学习ES的核心概念,包括索引、文档、映射、查询等。 以上是elasticsearch学习笔记的主要内容,希望对你有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Elasticsearch 学习笔记(上)](https://blog.csdn.net/m0_52691962/article/details/127064350)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值