Elasticsearch查询字符串

Elasticsearch查询字符串教程

Elasticsearch 的搜索主要有两种方式,即:使用查询字符串进行搜索和使用 DSL 进行查询,其中查询字符串的方式比较复杂,用的比较少。

Elasticsearch查询字符串详解

语法

GET /indexname/_search?q=querystr

参数

参数 描述
indexname 需要搜索的索引名
querystr 查询字符串

查询字符串格式

field1:value1&field2:value2&sort=price:desc

说明

上面的查询字符串的条件是 field1 的值为 value1,field2 的值为 value2 并且将查询结果按照 price 降序排序。

案例

查询字符串搜索

我们在 Kibana 的控制台上,输入以下代码,新建一个文档

PUT /haicodernet/_doc/1 { "name" : "javascript", "desc" : "javascript module", "categorys" : 5, "author" : "jobs steven", "tags": [ "javascript", "vue" ], "index":"www.haicoder.net" }

输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:

35_Elasticsearch查询字符串搜索文档.png

我们看到,此时我们创建文档成功了,现在,我们再次输入以下代码,再次创建一条文档:

PUT /haicodernet/_doc/2 { "name" : "server", "desc" : "server module", "categorys" : 10, "author" : "cainiao pei", "tags": [ "server", "python" ], "index":"www.haicoder.net" }

输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:

36_Elasticsearch查询字符串搜索文档.png

同样,我们再次创建一条记录,使用如下命令:

PUT /haicodernet/_doc/3 { "name" : "tools", "desc" : "tools module", "categorys" : 15, "author" : "cainiao pei", "tags": [ "tools", "vim" ], "index":"www.haicoder.net" }

即,我们再次成功创建了一个文档,现在,我们使用查询字符串进行文档搜索,具体命令如下:

GET /haicodernet/_search?q=author="cainiao pei"

输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:

37_Elasticsearch查询字符串搜索文档.png

我们看到,我们查询了 author 字段为 “cainiao pei” 的所有文档,并返回了查询到的两条记录。

查询字符串排序

我们继续使用上面创建的三个文档,现在,我们使用查询字符串进行文档搜索并排序,具体命令如下:

GET /haicodernet/_search?q=author="cainiao pei"&sort=categorys:desc

输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:

38_Elasticsearch查询字符串搜索文档.png

我们看到,我们查询了 author 字段为 “cainiao pei” 的所有文档并且使用了 sort 字段按照 categorys 进行降序排序,最终返回了查询到的两条记录按照了 categorys 降序排序了。

Elasticsearch查询字符串总结

Elasticsearch 的搜索主要有两种方式,即:使用查询字符串进行搜索和使用 DSL 进行查询,其中查询字符串的方式比较复杂,用的比较少。