为什么80%的码农都做不了架构师?>>>   

1.标示符查询

用来提供标示符过滤文档。 下面查询只返回含有value数组中一个标示符的文档。

{"query"   :   {"ids"    :   {"values" :   [   "1",  "2",  "3"   ]}}
}

复杂一点,在给定类型中完成查询。

{"query"  :   {"ids"    :   {"type"   :   "book","values" :   [   "1",  "2",  "3"   ]}}
}

2.前缀查询

查询特定字段以给定前缀为开始的文档。

{"query"   :   {"prefix" :   {"title"  :   "cri"}}
}

还可以增加3.0的加权。

{"query" :   {"prefix" :   {"title"  :   {"value"  :   "cri","boost"   :   3.0}}}
}

3.模糊查询(fuzzy)

模糊查询允许我们进行相似值的查询,给予编辑距离算法来匹配文档。编辑距离的计算基于我们提供的搜索字条以及被我们搜索的文档。模糊查询比较占用CPU资源。但是如果用户有拼写错误时,ES利用模糊查询仍然可以找到我们感兴趣的文档。 下面的例子是搜索crime时误输入crme。

{"query" :   {"fuzzy"  :   {"title"  :   "crme"}}
}
The response    for such    a   query   will    be  as  follows:
{"took"   :   81,"timed_out"    :   false,"_shards"   :   {"total"  :   5,"successful"    :   5,"failed"    :   0},"hits" :   {"total"  :   1,"max_score" :   0.5,"hits"    :   [   {"_index" :   "library","_type"   :   "book","_id"    :   "4","_score"    :   0.5,"_source" :   {"title"  :   "Crime and Punishment","otitle" :   "Преступлéние  и   наказáние","author"  :   "Fyodor    Dostoevsky","year"   :   1886,"characters" :   [   "Raskolnikov",    "Sofia Semyonovna  Marmeladova"   ],"tags"  :   [   ],"copies"    :   0,"available" :   true}}  ]}
}
  • value : 指定的实际查询
  • boost : 指定的查询加权值,默认 1.0 .
  • fuzziness : 指定匹配字段的最小近似度
  • prefix_length : 公共前缀长度,默认为0
  • max_expansions : 指定可被扩大到的最大词条数,默认为无限制

4.通配符查询(wildcard)

允许我们在查询时使用*和?的通配符

{"query" :   {"wildcard"   :   {"title"  :   "cr?me"}}
}

通配符查询包含加权属性值。

{"query"    :   {"wildcard"   :   {"title"  :   {"value"  :   "cr?me","boost" :   20.0}}}
}

注意:通配符查询不注重性能,应尽量避免。且可以进行参数控制重写。

5.范围查询

范围查询使我们能够找到在某一个字段在某个范围内的文档,字段可以是数值型或字符串型。范围查询只支持单个字段。 下面的例子是查找year字段从1700到1900的所有文档。

{"query"    :   {"range"  :   {"year"   :   {"gte"    :   1700,"lte"    :   1900}}}
}

参数:

  • gte:匹配字段大于等于此参数值的
  • gt :匹配字段大于此参数值的
  • lte:匹配字段小于等于此参数值的
  • lt :匹配字段小于此参数值的

6.more_like_this查询

可以匹配与我们提供的文本或文档相似的查询。ES支持几个参数来定义more_like_this查询。

  • field:定义应该执行查询的字段,默认为所有字段。
  • like :包含用来进行比较的字段。
  • min_term_freq:文档中字条最低频率,低于此频率将被忽略,默认为1.
  • min_doc_freq:包含该词条的最低文档数,低于此该词条将被忽略,默认为5.
  • 更多参数可以参考官方文档。
{"query" :   {"more_like_this" :   {"fields" :   [   "title",  "otitle"  ],"like"  :   "crime and punishment","min_term_freq"  :   1,"min_doc_freq"  :   1}}
}

下面是用来匹配一个给定的文档。

{"query"  :   {"more_like_this" :   {"fields" :   [   "title",  "otitle"  ],"min_term_freq" :   1,"min_doc_freq"  :   1,"like"  :   [{"_index"    :   "library","_type"   :   "book","_id"    :   "4"}]}}
}

上面两种匹配可以一次进行:

{"query" :   {"more_like_this" :   {"fields" :   [   "title",  "otitle"  ],"min_term_freq" :   1,"min_doc_freq"  :   1,"like"  :   [{"_index"    :   "library","_type"   :   "book","_id"    :   "4"},"crime  and punishment"]}}
}

转载于:https://my.oschina.net/clgo/blog/666590

ES查询-基本查询续相关推荐

  1. es解决只能查询10000条数据方案

    引言 在使用es进行数据查询时,由于es官方默认限制了索引一次性最多只能查询10000条数据,查询第10001条数据开始就会报错, 错误的内容大致为:Result window is too larg ...

  2. es java api 查询_es聚合查询javaapi

    查询节气详情 package net.apishop.www.controller; import import import import import import import import i ...

  3. 【ES】原生es的复杂查询

    原生es的复杂查询 相关依赖 复杂查询概述 外层查询-SearchSourceBuilder(类) 外层查询概述 对查询结果进行分页 对查询结果进行排序 对查询结果字段进行过滤 对查询结果进行聚合 求 ...

  4. es java 模糊查询_java使用elasticsearch进行模糊查询-已在项目中实际应用

    java使用elasticsearch进行模糊查询 使用环境上篇文章本人已书写过,需要maven坐标,ES连接工具类的请看上一篇文章,以下是内容是笔者在真实项目中运用总结而产生,并写的是主要方法和思路 ...

  5. ES中SQL查询详解

    一.Elasticsearch SQL简介 Elasticsearch SQL 是一个 X-Pack 组件,它允许对 Elasticsearch 实时执行类似 SQL 的查询.无论是使用 REST 接 ...

  6. 29.什么是ES 的id查询?如何使用id查询?如何在java中进行ID查询?嘻哈的简写笔记——Elastic Search

    1.什么是ES 的id查询?如何使用id查询? Id查询就是根据一个id进行查询,非常简单: GET /book/novel/ + id GET /book/novel/2 含义:这是查询一个id为2 ...

  7. es 常用DSL查询语序 以及springDataES对应和使用

    基本理解 索引 = 数据库 类型 = 表 文档 = 一条数据 字段 = 字段 映射 = 设计表的组成(这里不像是关系型数据库不能多加字段可以多加只是一个软规定) ik 地址直接访问用就ok:http: ...

  8. ES 04 - Elasticsearch查询索引文档的6种方法

    博客转载方面自己查看 目录 1 Query String Search(查询串检索) 2 Query DSL(ES特定语法检索) 3 Query Filter(过滤检索) 4 Full Text Se ...

  9. ES中如何查询Top10数据

    问题描述: 在实际项目中,查询Top10数据的场景非常常见,比如查询票房前十的电影,销售榜前十的商品等. 那么在ES中如何查询Top10的数据呢? 问题分析: 一般Top10问题,都可以转化成先排序再 ...

最新文章

  1. PowerDesigner模型设计
  2. Linux版本划分——基于打包方式
  3. 给一个元素插入一段HTML
  4. 秒懂数据类型的真谛—Python基础前传(4)
  5. Pod Preset玩转K8S容器时区自动配置 1
  6. CAN笔记(5) 协议标准规格
  7. Inflater与findViewById()区别
  8. 解决在IE6下使用display: inline-block;的不兼容性问题
  9. pycharm 怎么快速生成文件夹结构_Pycharm配置Qt工具(ubuntu18.04)
  10. 用idea搭建SSM框架maven项目
  11. python 字符串 string模块导入及用法
  12. 从海康录像机取RTSP转发流,规律性的断流
  13. 介绍一款网页翻译插件
  14. 第十届泰迪杯数据挖掘大赛B题电力系统负荷预测
  15. Matlab画图 线型控制
  16. linux系统镜像后缀及简单介绍
  17. Shader山下(六)镜面高光
  18. tcpdump抓取网络
  19. 所希望于劳工会的〔1〕
  20. SqlServer的基本使用

热门文章

  1. 手机端滚动屏幕加载更多
  2. 百度推广为什么出现在右侧
  3. Dubbo的负载均衡、集群容错、服务降级等机制详解
  4. java代码中出现乱码怎么解决?
  5. android toolbar区别,Android《ToolBar》
  6. X86 CPU特性之(1)-umip
  7. 利用WPF建立自己的3d gis软件(非axhost方式)(九)SDK自带部分面板的调用
  8. 【跃迁之路】【429天】程序员高效学习方法论探索系列(实验阶段186-2018.04.10)...
  9. CentOS7网络配置,安装jdk,tomcat和mysql全过程
  10. H5项目常见问题汇总及解决方案