ES 八月 13, 2024

分布式原理

文章字数 23k 阅读约需 21 mins.

  • 服务性能受节点主机性能限制
  • 可用性差,主机或服务挂了就无法使用
  • 节点服务变更困难,若碰到需要重启服务才能生效的配置
  • 高可用性:集群可容忍部分节点宕机而保持服务的可用性和数据的完整性
  • 易扩展:当集...
查看全文

ES 八月 10, 2024

es常用命令

文章字数 3.3k 阅读约需 3 mins.

插入语句


POST dynamic_table_data_prod/_doc/20220913182809274319000002
{
  "id" : "20220913182809274319000002",
          "data" : {
            "姓名" : "横一",
            "公海" : "",
            "最后跟进时间" : "2022...
查看全文

ES 八月 08, 2024

java客户端

文章字数 37k 阅读约需 34 mins.

生命周期(生卒年:ES 0.9 - ES 7.x)

Java API在7.x之前使用的客户端名称叫TransportClient,从7.0.0开始,官方已经不建议使用TransportClient作为ES的Java客户端了,并且从8.0开始被彻底删除。

注意事项

  • TransportClient 使用transport模块(9300端口)远程连接到 Elasticsearch 集群,客户端并不加入集群,而是通过获取单个或者多个transport地址来以轮询的方式与他们通信。
  • TransportClient...
查看全文

ES 八月 06, 2024

推荐搜索

文章字数 9.5k 阅读约需 9 mins.

在用户输入时候,进行自动补正或错误纠正,提高搜索的精准度来提升用户的搜索体验.

term suggester

只基于tokenizer之后的单个term去匹配建议词,并不会考虑多个term之间的关系.

结构

POST <index>/_search
{ 
  "suggest": {
    "<suggest_name>": {
      "text": "<search_content>...
查看全文

ES 八月 06, 2024

Untitled

文章字数 9.4k 阅读约需 9 mins.

Elasticsearch没有内部对象的概念,因此,ES在存储复杂类型的时候会把对象的复杂层次结果扁平化为一个键值对列表。

例子

插入记录

POST nested_test/_doc
{
  "camera":{
    "type":"canon",
    "photo":[
        {
          "image":"yyy1",
          "score":6
        }...
查看全文

ES 十二月 21, 2023

脚本查询 scripting

文章字数 34k 阅读约需 31 mins.

​ Scripting是ES支持的一种专门用于复杂场景下支持自定义编程的强大的脚本功能,ES支持多种脚本语言,如painless,其语法类似于Java,也有注释、关键字、类型、变量、函数等,其就要相对于其他脚本高出几倍的性能,并且安全可靠,可以用于内联和存储脚本。

groovy: 即es 1.4.x - 5.0 的默认脚本语言.

painless: es5.0之后的默认脚本语言.

expression: 每个文档的开销较低,表达式的作用更多,可以非常快速地执行.但只能访问数值,布尔值,日期与geo_point...

查看全文

ES 十二月 10, 2023

es概念

文章字数 9.1k 阅读约需 8 mins.

​ Elasticsearch 是一种分布式文档存储。Elasticsearch 存储的是序列化为 JSON 文档的复杂数据结构,而不是以列数据行的形式存储信息。当集群中有多个 Elasticsearch 节点时,存储的文档会分布在整个集群中,可以从任意节点立即访问。

​ 文档存储后,会在 1 秒钟内编制索引并进行完全实时搜索。Elasticsearch 使用一种称为倒排索引的数据结构,支持非常快速的全文检索。倒排索引列出了任何文档中出现的每一个单词,并能识别每个单词出现的所有文档。

​ 索引可...

查看全文

ES 十月 12, 2021

分词器

文章字数 6k 阅读约需 5 mins.

分词之前的预处理,过滤无用字符

切词用

常见的分词器

  • standard analyzer:默认分词器,中文支持的不理想,会逐字拆分。
  • pattern tokenizer:以正则匹配分隔符,把文本拆分成若干词项。
  • simple pattern tokenizer:以正则匹配词项,速度比pattern tokenizer快。
  • whitespace analyzer:以空白符分隔

中文分词器 ik

安装与部署

查看全文

ES 十月 12, 2021

聚合查询

文章字数 2.8k 阅读约需 3 mins.

聚合(aggs)查询中,进行聚合的字段必须是exact value,分词字段不可进行聚合,对于text字段如果需要使用聚合,需要开启fielddata,但是通常不建议,因为fielddata是将聚合使用的数据结构由磁盘(doc_values)变为了堆内存(field_data),大数据的聚合操作很容易导致OOM,详细原理会在进阶篇中阐述。

三种聚合分类

  1. 分桶聚合(Bucket agregations):类比SQL中的group by的作用,主要用于统计不同类型数据的数量

    函数:terms

    注意...

查看全文

ES 十月 12, 2021

环境搭建

文章字数 5.2k 阅读约需 5 mins.

  1. 下载elasticsearch镜像

    docker pull elasticsearch:8.2.0
    
    root@空痕影的matebook:~# docker pull elasticsearch:8.2.0
    8.2.0: Pulling from library/elasticsearch
    e0b25ef51634: Pull complete
    860caabdf263: Pull complete
    9fbe6bc43ac5: Pull complete
    9d4f6737f430: Pull complete...
查看全文
加载更多
0%