我对pyes(ElasticSearch的Python API)有疑问。
是否可以使搜索方法返回找到的文档的键?
我使用的代码:
import pyes
conn = pyes.ES('localhost:9200')
q = pyes.StringQuery("november rain", default_operator="AND")
result = conn.search(query=q, indices=[index])
for r in result:
print r
结果:找到了文档,但没有保存文档所用的键(_id字段)。
问题是如何返回_id键?
谢谢!
最佳答案
ResultSet
中的所有结果都只是ElasticSearchModel
对象。因此,您可以像这样通过_id
DotDict访问_meta
属性
r._meta.id
_meta
还包含其他一些有用的信息:(Pdb) pp res._meta
{'connection': <pyes.es.ES object at 0x8268ecc>,
u'id': u'2',
u'index': u'twitter',
'parent': None,
u'score': 0.095891505000000002,
u'type': u'tweet'}
有关更多详细信息,请参见models和result sets的文档。