es相关

本文介绍了Elasticsearch的搜索原理,包括查询字符串、分析器的工作过程、索引映射、过滤查询和相似度计算。讲解了TF/IDF算法在匹配得分中的应用,以及如何使用must、must_not、should和filter进行查询。还探讨了分页策略,如scroll搜索、search_after和from_size,并深入讨论了fielddata及其内存管理,包括断路器的设定和优化。最后,提到了预加载fielddata的策略以及聚合查询的深度优先和广度优先模式。
摘要由CSDN通过智能技术生成
  1. 查询字符串
    类似于这种搜索,GET /_search?q=mary
    查询时默认会使用_all字段(不指定搜索的字段时),该字段是数据中所有字符串字段的值拼接的结果,搜索时如果在_all中命中了,就会返回该条数据
  2. 查看索引mapping
    GET /index/_mapping
  3. 分词过程(分析器analyzer工作过程)
    • 字符过滤器(character filter): 过滤html标签、将&字符转为and等一系列操作…
    • 分词器(tokenizer):根据空格、逗号等分割单词
    • 标记过滤(token filters):增加同义词、去掉停用词、转换大小写等
  4. 索引文档时全文字段会被分析为单独的词来创建倒排索引
    查询全文(full text)字段时,查询将使用相同的分析器来分析查询字符串,以产生正确的词列
    查询确切值(exact value)字段,查询将不分析查询字符串,但是可以自己指定
  5. 测试分析器分词的结果
GET /_analyze
{
   
  "analyzer": "分析器名称",
  "text": "被测试的文本"
}
  1. es类型
类型 es类型
字符串 text
精确词 keyword
整形 byte, short, integer, long
浮点类型 float, double
布尔类型 boolean
日期 Date
对象 Object
  1. 构建索引映射
创建索引映射
PUT /索引名
{
   
  "mappings": {
   
      "properties" : {
   
        "字段名" : {
   
          "type" :    "类型名",
          "analyzer": "分词器",
           "index":true|false(是否被索引)
        }
      }
    }
}
添加索引映射
POST /索引名/_mapping
{
   
      "properties" : {
   
        "索引名" : {
   
          "type" :    "字段类型",
          "analyzer": "分词器",
          "index":true|false(是否被索引)
        }
      }
}
<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值