ElasticSearch 学习小笔记

object数据类型

除了一些基本数据类型以外,要注意有一个object类型,即和json的数据类型。
大部分复杂的数据类型,都是以这个形式存在的


querry和filter的区别

都是删选数据,最明显的区别就是前者计算分数,而后者不进行计算。
我们要知道,在es进行查询的时候,他会根据相关度(匹配程度)进行一个展示的排序,而这部分的算法会消耗很大的一部分资源和速度。
由此,我们可以得出一个优化查询效率的办法,就是尽量做过滤先,然后查询,如果顺序不重要,可以对查询进行分数不计算的设置,这样可以大大加快查询效率。(查询的时候加"constant_score"不计算分数)

GET /company/employee/_search 
{
  "query": {
    "constant_score": {
      "filter": {
        "range": {
          "age": {
            "gte": 30
          }
        }
      }
    }
  }
}


bool查询的相关度计算

很多时候我们会发现,bool查询出来的结果会与我们想要的结果的大相径庭,这是因为bool查询的相关度算法的问题。
bool一般是由mustmust_notshouldfilter这些子查询组成
每个子查询都会计算一个document针对它的相关度分数,然后bool综合所有分数,合并为一个分数,当然filter是不会计算分数的

match query的再次学习

  • 全文检索的时候,进行多个值的检索,有两种做法,match query;should
  • match query 底层会自动转化成bool查询
  • 控制搜索结果精准度:and operator,minimum_should_match
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值