Elasticsearch常用DSL关键字

  • query: 用于包含查询使用到的语法
  • match_all: 最简单的查询,获取索引所有数据,类似搜索 *。如:”query”:{“match_all”:{}}
  • bool: 复合查询,可以包含多个查询条件,主要有(must,must_not,should)
  • must: 用于包含逻辑与查询条件,即所有查询条件都满足才行
  • must_not: 用于包含逻辑非查询条件,即不包含所有查询的条件数据
  • should: 用于包含逻辑或查询条件,即其中有一个条件满足即可
  • filter: 与must一样,包含的所有条件都要满足,但不会参与计算分值,查询速度上会提升不少
  • match: 匹配查询,用于匹配指定属性数据,也可以匹配时间,IP等特殊数据 注意: match匹配不会解析通配符,匹配的效果受到索引属性类型影响,如果索引属性设置了分词,那么match匹配也会分词匹配,他也不解析”“,但可以设置逻辑关系来处理
  • operator: 匹配逻辑关系,默认是or,可设置为and,这样可达到精确匹配的效果
  • query_string: 使用查询解析器来解析查询内容,如port:80 AND server:http。注意:此类型请求有很多选项属性,可以设置一些特殊的行为
  • term: 查找包含在反向索引中指定的确切术语的文档
  • terms: 筛选具有匹配任何条件的字段,如”terms” : { “user” : [“kimchy”, “elasticsearch”]}
  • range: 将文档与具有特定范围内的字段相匹配。Lucene查询的类型依赖于字段类型,对于字符串字段,即TermRangeQuery,而对于number/date字段,查询是一个数字的范围。如:”range”:{“port”:{“gte”:10,”lte”:20,”boost”:2.0}}
  • gte: 大于或等于
  • gt: 大于
  • lte: 小于或等于
  • lt: 小于
  • boost: 设置查询的boost值,默认值为1.0
  • exists: 返回在原始字段中至少有一个非空值的文档,注意:”“,”-“这些都不算是空值
  • prefix: 匹配包含带有指定前缀字段的字段(没有分析),前缀查询映射到Lucene前缀查询,如:”prefix” : { “user” : “ki” },查询user数据前缀为ki的doc
  • wildcard: 匹配具有匹配通配符表达式的字段(未分析)的文档。支持(*通配符)是匹配任何字符序列(包括空的序列)和(?通配符)它匹配任何一个字符。注意,这个查询可能比较慢,因为它需要迭代多个术语。为了防止非常慢的通配符查询,一个通配符项不应该从通配符开始,或者?通配符查询映射到Lucene通配符查询。如:”wildcard” : { “user” : “ki*y” }
  • regexp: regexp查询允许您使用正则表达式术语查询,意味着Elasticsearch将把regexp应用到该字段的标记器所产生的词汇,而不是该字段的原始文本。regexp查询的性能严重依赖于所选择的正则表达式,通配符往往会降低查询性能。如:”regexp”:{ “name.first”:”s.*y” }
  • fuzzy: 模糊查询使用基于Levenshtein编辑距离的相似性。如:”fuzzy” : { “user” : “ki” }
  • type: 过滤文档匹配所提供的文档/映射类型。如:”type”:{ “value” : “my_type” }
  • ids: 过滤只具有提供的id的文档。注意:这个查询使用了_uid字段,类型是可选的,可以省略,也可以接受一组值。如果没有指定类型,那么将尝试在索引映射中定义的所有类型。如:”ids”:{ “type” : “my_type”,”values” : [“1”,”4”,”100”] }。
  • highlight: 允许在一个或多个字段中突出显示搜索结果,基于lucene plain highlighter。在默认情况下,高亮显示会将高亮显示的文本包装在 and ,可以通过设置pre_tags 与 post_tags来自定义,如:”highlight”:{ “pre_tags” : [““], “post_tags” : [““], “fields” : {“_all”:{}} }
  • pre_tags: 自定义包含搜索关键字的前缀
  • post_tags: 自定义包含搜索关键字的后缀
  • fields: 用于指定要高亮的属性,_all表示所以属性都需要高亮,如:”fields”:{ “_all” : {} },也可以指定具体属性 “fields”:{ “app” : {} },也可以给每个属性单独指定设置 “fields”:{ “app” : {“fragment_size” : 150, “number_of_fragments” : 3} }
  • highlight_query: 可以通过设置highlight_query来突出显示搜索查询之外的查询,通常,最好将搜索查询包含在highlight_query中。如:”highlight_query”:{ “bool”:{“must”:[{“query_string”:{“query”:app:apache,”analyze_wildcard”:True,”all_fields”:True}}]} }
  • fragment_size: 用于指定高亮显示时,碎片的长度,如果过短,高亮内容会被切分为多个碎片。默认情况下,当使用高亮显示的内容时,碎片大小会被忽略,因为它会输出句子,而不管它们的长度
  • number_of_fragments 用于指定高亮显示时,碎片的数量,如果指定为0,那么就不会产生任何片段
  • from: 可以通过使用from和size参数来对结果进行分页,from参数指定您想要获取的第一个结果的偏移量
  • size: 可以通过使用from和size参数来对结果进行分页,size参数指定要返回结果的最大数量
  • sort: 允许在特定的字段上添加一个或多个排序,排序是在每个字段级别上定义的,用特殊的字段名来排序,然后根据索引排序进行排序,如”sort”: [ { “date”: { “order”: “desc” } } ],desc降序,asc升序
  • aggs: aggs主要用于分类集合,可以将查询的数据按指定属性进行分类集合统计.如:”aggs”:{ “deviceType”:{ “terms”:{ “field”:”deviceType”, “size”:6 } } }
  • field: 用于指定要分类的属性名称
  • size: 用于指定分类集合的数量,即只集合前N名
 

Elasticsearch常用DSL关键字的更多相关文章

  1. Elasticsearch Query DSL 整理总结(二)—— 要搞懂 Match Query,看这篇就够了

    目录 引言 构建示例 match operator 参数 analyzer lenient 参数 Fuzziness fuzzniess 参数 什么是模糊搜索? Levenshtein Edit Di ...

  2. ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解

    前言 在上一篇中介绍了ElasticSearch集群和kinaba的安装教程,本篇文章就来讲解下 ElasticSearch的DSL语句使用. ElasticSearch DSL 介绍 Elastic ...

  3. PHP面向对象中常用的关键字和魔术方法

    PHP面向对象中常用的关键字 final        1.final不能修饰成员属性(类中常量不是用这个关键字)        2.final只能修饰类和方法 作用:            使用fi ...

  4. Elasticsearch Query DSL

    Elasticsearch Query DSL By:授客 QQ:1033553122 1. match_all 1 2. match 2 3. match_phrase 5 4. match_phr ...

  5. Elasticsearch Query DSL 整理总结(一)—— Query DSL 概要,MatchAllQuery,全文查询简述

    目录 引言 概要 Query and filter context Match All Query 全文查询 Full text queries 小结 参考文档 引言 虽然之前做过 elasticse ...

  6. Robotframework 之常用断言关键字简介

    任何自动化测试框架或实例中断言是必不可少的,Robotframework同样如此,那下面就介绍下其常用断言关键字. 1.Should Be Empty   判断是否为空,如果不为空,执行失败,示例: ...

  7. elasticsearch(四) 之 elasticsearch常用的一些集群命令

    目录 elasticsearch常用的一些集群命令 查看集群健康状态 查看集群的节点列表 查看所有的索引 删除索引 查询索引的某个文档内容 更新文档 删除文档 自动创建索引 定时删除索引 elasti ...

  8. Elasticsearch 常用API

    1.   Elasticsearch 常用API 1.1.数据输入与输出 1.1.1.Elasticsearch 文档   #在 Elasticsearch 中,术语 文档 有着特定的含义.它是指最顶 ...

  9. robotframework之常用系统关键字

    常用系统关键字此处做些记录,后续根据实际应用陆续补充 1.变量声明 ${a} Set Variable hello 2.表单嵌套 Select Frame Xpath=//* [@] Unselect ...

随机推荐

  1. mongodb数据修复宝典

    mongodb数据修复宝典 1. 版本信息 mongodb版本: 3.6.14 2.mongodb日志内容: 2019-10-04T10:41:38.558+0000 E STORAGE [inita ...

  2. ASP微信服务号H5客户登陆,且获取客户授权的用户基本信息

    ASP微信服务号H5客户登陆,且获取客户授权的用户基本信息是需要客户授权,下面讲解详细步骤: 第一步:客户点击登录页,自动跳转到微信服务器端获取code 第二步:用第一步获取的code去获取客户的ac ...

  3. 支持rotate和大小限制的golang log库

    支持大小限制和rotate的log库,还是很有必要的,前者让你不再操心磁盘被吃光,后者让查日志更方便. 但是在golang中没有太好的实现,看过一些开源的和自行实现的,都有几个不满意的地方,比如: 没 ...

  4. dalvik浅析二:jni、so

    android大多使用java来开发,java中有个概念叫jni.当然说到jni,必然是少不了native code.在android中就是so库.我们来分析下jni在android dalvik的使 ...

  5. Python中sys模块的使用

    目录 sys模块 sys.argv() sys.exit(0) sys.path sys.modules sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的 ...

  6. MS08_067漏洞攻击

    MS08_067 MS08_067是典型的缓冲区溢出漏洞,Windows的Server服务在处理特制RPC请求时存在缓冲区溢出漏洞,远程攻击者可以通过发送恶意的RPC请求触发这个溢出,导致完全入侵用户 ...

  7. hdu3415单调队列

    题意:       给你一个数字组成的环,要求在里面找到一个最大的子序列,使得和最大,要求: (1)子序列长度不能超过k (2)如果子序列和相同要起点最小的 (3)如果起点相同要长度最小的 思路:   ...

  8. Nmap 扫描器的使用技巧

    1.nmap语法 -A 全面扫描/综合扫描 例如:nmap -A 127.0.0.1 扫描指定段 例如:nmap 127.0.0.1-200&nmap 127.0.0.1/24 2.Nmap ...

  9. SQL注入平台(sqli-labs)搭建提示Fatal error: Uncaught Error:

    笔者搭建该平台时用的是phpstudy,估计wampserver和xmapp也适用 搭建过程中出现错误 在浏览器进入sqli-labs时有以下提示 Fatal error: Uncaught Erro ...

  10. 『动善时』JMeter基础 — 7、jmeter.properties文件常用配置

    目录 1.默认语言设置 2.配置默认编码格式 3.GUI图标放大比例设置 4.功能区工具栏图标大小设置 5.视图区目录树图标大小设置 6.内容区编辑字体设置 7.添加JMeter元素快捷键设置 8.捕 ...