跳到主要内容

简单查询 query string

何处使用

  1. 查询q参数方式

GET /_search?q=user:kimchy

GET /kimchy,elasticsearch/_search?q=tag:wow

  1. 查询body方式
GET /_search
{
"query": {
"query_string" : {
"query" : "this AND that OR thus"
}
}
}
  1. 控制台数据集查询框采用 query string 可快速调试 img

基础用法

1. 关键词

最简单的关键词匹配

hello

2. 逻辑关系

带运算符的关键词匹配

this AND that OR thus

(new york city) OR (big apple)

3. 指定字段

其中status字段包含active

status:active

title:(quick OR brown)

title:(quick brown)

4. 包含短语

其中作者字段包含确切的短语“john smith”

author:"John Smith"

5. 通配符字段

其中任何字段 book.title、book.content 或 book.date 包含 quick 或 brown (注意我们需要如何用反斜杠转义 *)

book.\*:(quick brown)

6. 带关系运算的字段匹配

(content:this OR name:this) AND (content:that OR name:that)

7. 范围查找

date:[2012-01-01 TO 2012-12-31]

count:[1 TO 5]

count:[10 TO *]

date:{* TO 2012-01-01}

进阶用法

1. 关键词权重

如下例quick会在bm25算分的结果上乘以2, 因此会有更高的排名。

quick^2 fox

算分提升也可以应用于短语或组

"john smith"^2 (foo bar)^4

其他用法

1. 模糊查询

我们可以使用“模糊”运算符搜索与我们的搜索词相似但不完全相同的词:

quikc~ brwn~ foks~

2. 通配符匹配

*hello*world*

3. 正则表达式匹配

name:/joh?n(ath[oa]n)/

提示

使用提示: 以上三种用法需谨慎使用,在大数据量场景不会使用到倒排索引,因而产生极高的计算量及性能损耗。