ElasticSearch - 查询语法(URI Search)
2019-08-22 本文已影响0人
辻子路
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:
- 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查询
title="Beautiful Mind"
属于Phrase查询
image.png
-
布尔操作
AND / OR/ NOT 或者 && / || / !必须大写 title:(matrix NOT reloaded)
-
分组
+ 表示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