ElasticSearch - 查询语法(URI Search)

Search API

  • URI Search
    在URL中使用参数(get)
  • Request Body Search
    使用Elasticsearch提供的,基于json格式的更加完备的Query Domain Specific Language(DSL)

URI查询

  • 使用'q',指定查询字符串
  • 'query string syntax',KV键值对


    ElasticSearch - 查询语法(URI Search)_第1张图片
    image.png

Requeset Body

ElasticSearch - 查询语法(URI Search)_第2张图片
image.png

深入URI Search

Example:

ElasticSearch - 查询语法(URI Search)_第3张图片
image.png

  • q 指定查询语句,使用Query String Syntax
  • df 默认字段,不指定时,会对所有字段进行查询
  • Sort排序 / from和size用于分页
  • Profile 可以查看查询是如何被执行的

Query String Syntax

  • 指定字段 vs 泛查询

    q=title:2012 / q=2012  
    
  • Term vs Phrase

    Beautiful Mind 等效于 Beautiful OR Mind  
    "Beautiful Mind",等效于 Beautiful AND Mind。 Phrase查询,还要求前后顺序保持一致  
    
  • 分组与引号

    title:(Beautiful Mind)     
    属于Term查询
    
ElasticSearch - 查询语法(URI Search)_第4张图片
image.png
title="Beautiful Mind"          
属于Phrase查询
ElasticSearch - 查询语法(URI Search)_第5张图片
image.png
  • 布尔操作
    AND / OR/ NOT 或者 && / || / !

      必须大写  
      title:(matrix NOT reloaded)  
    
ElasticSearch - 查询语法(URI Search)_第6张图片
image.png
  • 分组

    + 表示must  
    - 表示 must_not  
    title:(+matrix - reloaded)
    
  • 范围查询

    区间表示:[]闭区间,{}开区间  
    year: {2019 TO 2018]
    year:[* TO 2018]
    
  • 算数符号

    year:>2000
    year:(>2010 && <=2018)
    year:(+>2010 +<=2018)
    
  • 通配符查询(通配符查询效率低,占用内存大,不建议使用。特别是放在最前面)

    ?代表1个字符,*代表0或多个字符  
        1. title:mi?d 
        2. title:be*
    
  • 正则表达

    titile:[bt]oy
    
  • 模糊匹配与近似查询

    title: befutifl~1
    title:"lord rings"~2
    

你可能感兴趣的:(ElasticSearch - 查询语法(URI Search))