如何在elasticsearch-dsl python中选择特定字段

Vik*_*ngh 4 python elasticsearch elasticsearch-dsl

我正在使用elasticsearch dsl搜索elasticsearch:https : //elasticsearch-dsl.readthedocs.org/en/latest/

进行搜索查询时如何过滤特定字段:

我知道它在Elasticsearch中受支持:https//www.elastic.co/guide/en/elasticsearch/reference/1.4/search-request-fields.html

只是不知道如何在Elasticsearch-dsl中做同样的事情

Val*_*Val 8

当您拥有Search对象时,可以.fields()在其上调用该函数并指定要返回的字段:

s = search.Search()
s = s.fields(["field1", "field2"])
...
Run Code Online (Sandbox Code Playgroud)

在文档中没有明确提及它,但是您可以文件fields源代码中search.py看到该函数以及函数的一些测试用例fields

更新

从ES 2.x开始,该fields()方法已重命名为source()

  • 看起来在Elasticsearch-dsl [(link)](https://github.com/elastic/elasticsearch-dsl-py/)的2.x版本中,`.fields()`方法已更改为`.source()`。 blob / a455fdd51a8cfa9f4b9ce7733f7a91b5e5d41ca1 / elasticsearch_dsl / search.py​​#L387) (2认同)