如何使pyes搜索方法返回找到的文件的密钥?

die*_*cht 4 python elasticsearch pyes

我有一个关于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
Run Code Online (Sandbox Code Playgroud)

结果:找到了文档,没有保存文档的密钥(_id字段).

问题是如何返回_id键?

谢谢!

Luk*_*raf 6

a ResultSet中的所有结果都只是ElasticSearchModel对象.所以你可以像这样_id通过_metaDotDict 访问该属性

r._meta.id
Run Code Online (Sandbox Code Playgroud)

_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'}
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅模型结果集的文档.