如何 select elasticsearch-dsl 中的特定字段 python
How to select specific fields in elasticsearch-dsl python
我正在使用 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 中做同样的事情
当您拥有 Search
对象时,您可以对其调用 .fields()
函数并指定您想要的字段 return:
s = search.Search()
s = s.fields(["field1", "field2"])
...
文档中没有明确提到,但是可以在source for the search.py
file and some test cases for the fields
function
中看到fields
函数
更新
从 ES 2.x 开始,fields()
方法已重命名为 source()
我将它用于所有字段:
from elasticsearch_dsl import Q, Search
from elasticsearch import Elasticsearch
client = Elasticsearch('localhost:9200')
q = Q("multi_match", query='STRING_TO_SEARCH', fields=['_all'])
result = Search(index='YOUR_INDEX').using(client).query(q).execute()
或特定字段:
fields=['name',]
在 elasticsearch-dsl 版本中 6.x.x fields()
已弃用,结果异常。
使用 source(fields=None, **kwargs)
以便 projection
列
例如
s = Search()
s = s.source(["field1", "field2"])
s = Search()
s = s.source(include=['obj1.*'], exclude=["*.description"])
s = Search()
s = s.source(include=['obj1.*']).source(exclude=["*.description"])
我正在使用 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 中做同样的事情
当您拥有 Search
对象时,您可以对其调用 .fields()
函数并指定您想要的字段 return:
s = search.Search()
s = s.fields(["field1", "field2"])
...
文档中没有明确提到,但是可以在source for the search.py
file and some test cases for the fields
function
fields
函数
更新
从 ES 2.x 开始,fields()
方法已重命名为 source()
我将它用于所有字段:
from elasticsearch_dsl import Q, Search
from elasticsearch import Elasticsearch
client = Elasticsearch('localhost:9200')
q = Q("multi_match", query='STRING_TO_SEARCH', fields=['_all'])
result = Search(index='YOUR_INDEX').using(client).query(q).execute()
或特定字段:
fields=['name',]
在 elasticsearch-dsl 版本中 6.x.x fields()
已弃用,结果异常。
使用 source(fields=None, **kwargs)
以便 projection
列
例如
s = Search()
s = s.source(["field1", "field2"])
s = Search()
s = s.source(include=['obj1.*'], exclude=["*.description"])
s = Search()
s = s.source(include=['obj1.*']).source(exclude=["*.description"])