ElasticSearch - 查询语法(URI Search)

ElasticSearch - 查询语法(URI Search)

八月 22, 2019

Search API

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

URI查询

  • 使用’q’,指定查询字符串
  • ‘query string syntax’,KV键值对
    image.png

Requeset Body

image.png

深入URI Search

Example:
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查询

    image.png

    title=”Beautiful Mind”
    属于Phrase查询
    image.png

  • 布尔操作
    AND / OR/ NOT 或者 && / || / !

    必须大写  
    title:(matrix NOT reloaded)  

    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