Elasticsearch查询指定字段

Elasticsearch查询指定字段教程

我们在使用 ElasticsearchDSL 进行搜索时,还可以指定我们只需要展示的字段名,只需将其写在 _source 字段即可。

Elasticsearch查询指定字段详解

语法

GET /indexname/_search { "query": { }, "_source": ["filed1", "filed2"] }

参数

参数 描述
indexname 需要搜索的索引名
filed1 需要展示的字段名
filed2 需要展示的字段名

说明

通过 _source 字段过滤需要显示的字段名。

案例

查询记录的指定字段

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

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

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

49_Elasticsearch查询指定字段.png

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

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

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

50_Elasticsearch查询指定字段.png

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

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

即,我们再次成功创建了一个文档,现在,我们使用 DSL 进行文档的搜索并过滤出我们指定的字段,具体命令如下:

GET /haicodernet/_search { "query":{ "match_all": {} }, "_source": ["name", "author", "index"] }

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

51_Elasticsearch查询指定字段.png

我们看到,我们使用 DSL 查询了所有记录,并且只指定了返回了 name、author 和 index 三个字段值,现在,我们, 再次使用如下命令,综合查询和过滤字段,具体命令如下:

GET /haicodernet/_search { "query":{ "match": { "author" : "cainiao pei" } }, "from":0, "size":2, "_source": ["name", "author", "index"] }

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

52_Elasticsearch查询指定字段.png

我们看到,最终查询到的数据,同样只是返回了我们指定的字段名。

Elasticsearch查询指定字段总结

我们在使用 Elasticsearch 的 DSL 进行搜索时,还可以指定我们只需要展示的字段名,只需将其写在 _source 字段即可。