gpt4 book ai didi

python - 如何在 PyES 中使用 ResultSet

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:04 25 4
gpt4 key购买 nike

我正在使用 PyES 在 Python 中使用 ElasticSearch。通常,我按以下格式构建查询:

# Create connection to server.
conn = ES('127.0.0.1:9200')

# Create a filter to select documents with 'stuff' in the title.
myFilter = TermFilter("title", "stuff")

# Create query.
q = FilteredQuery(MatchAllQuery(), myFilter).search()

# Execute the query.
results = conn.search(query=q, indices=['my-index'])

print type(results)
# > <class 'pyes.es.ResultSet'>

这非常有效。当查询返回大量文档时,我的问题就开始了。将结果转换为字典列表在计算上要求很高,因此我尝试返回字典中已有的查询结果。我遇到了这个文档:

http://pyes.readthedocs.org/en/latest/faq.html#id3 http://pyes.readthedocs.org/en/latest/references/pyes.es.html#pyes.es.ResultSet https://github.com/aparo/pyes/blob/master/pyes/es.py (第1304行)

但是我不知道我到底应该做什么。根据之前的链接,我尝试过:

from pyes import *
from pyes.query import *
from pyes.es import ResultSet
from pyes.connection import connect

# Create connection to server.
c = connect(servers=['127.0.0.1:9200'])

# Create a filter to select documents with 'stuff' in the title.
myFilter = TermFilter("title", "stuff")

# Create query / Search object.
q = FilteredQuery(MatchAllQuery(), myFilter).search()

# (How to) create the model ?
mymodel = lambda x, y: y

# Execute the query.
# class pyes.es.ResultSet(connection, search, indices=None, doc_types=None,
# query_params=None, auto_fix_keys=False, auto_clean_highlight=False, model=None)

resSet = ResultSet(connection=c, search=q, indices=['my-index'], model=mymodel)
# > resSet = ResultSet(connection=c, search=q, indices=['my-index'], model=mymodel)
# > TypeError: __init__() got an unexpected keyword argument 'search'

有人能够从结果集中获取字典吗?任何有效地将 ResultSet 转换为字典(列表)的好建议也将受到赞赏。

最佳答案

我尝试了很多方法直接将 ResultSet 转换为 dict 但什么也没得到。我最近使用的最好方法是将 ResultSet 项目附加到另一个列表或字典中。 ResultSet 以字典的形式涵盖了其本身的每一项。

这是我的使用方法:

#create a response dictionary
response = {"status_code": 200, "message": "Successful", "content": []}

#set restul set to content of response
response["content"] = [result for result in resultset]

#return a json object
return json.dumps(response)

关于python - 如何在 PyES 中使用 ResultSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15222175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com