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. Proxy.newProxyInstance源码探究

    JDK动态代理案例实现:实现 InvocationHandler 接口重写 invoke 方法,其中包含一个对象变量和提供一个包含对象的构造方法: public class MyInvocationH ...

  2. CS与MSF之间的会话传递

    0x01 MSF会话传递到CS 1. CS上的操作 点击Cobalt Strike然后选择监听器,创建一个HTTPS Beacon的监听器即可 创建成功后如下 2. MSF上的操作 前提是已经获取到了 ...

  3. 共享内存多进程key value操作

    这个方法的优势是多进程,劣势也很明显,只允许操作key为uint32 value为uint32的数据.   https://www.cnblogs.com/dearplain/p/11578588.h ...

  4. 【网络协议】 TCP三次握手的流程

    在TCP/IP协议中,TCP协议通过三次握手,建立可靠的连接服务: 三次握手是由客户端发起 第一步: 客户端向服务端发送请求报文(实际上就是一个具有特定格式的数据包),报文中包含一个标志为Syn,Sy ...

  5. UIautomator2框架快速入门App自动化测试

    01.APP测试框架比较 常见的APP测试框架   APP测试框架 02.UIAutomator2简介 简介 UIAutomator2是一个可以使用Python对Android设备进行UI自动化的库. ...

  6. File & Directory

    新开一节IO(Input/Output)的用法. 这节主要讲一下操作文件和文件目录的两个静态类:File 和 Directory. 在进入正题之前,先理解一下相对路径和绝对路径这两个概念: 绝对路径, ...

  7. C++逆向分析----多重继承和菱形继承

    多重继承 多重继承是指C++类同时继承两个类或两个以上的类. class Test { public: int num1; Test() { num1 = 1; } virtual void Proc ...

  8. 解读vue-server-renderer源码并在react中的实现

    前言 ​ 在博客开发的过程中,有这样一个需求想解决,就是在SSR开发环境中,服务端的代码是是直接通过webpack打包成文件(因为里面包含同构的代码,就是服务端与客户端共享前端的组件代码),写到磁盘里 ...

  9. linux跨文件复制粘贴

    跨文件是这样的: 复制a.txt的第20行至第30行到b.txt中vi a.txt:2010yy:e b.txtp

  10. Spring Cloud Gateway之动态路由(数据库版)

    1.实现动态路由的关键是RouteDefinitionRepository接口,该接口存在一个默认实现(InMemoryRouteDefinitionRepository) 通过名字我们应该也知道该实 ...