我正在使用ES版本1.6.0和ES的Python插件。我的索引中有大量文档,我想遍历索引中的每个文档。在这个意义上,我使用扫描来获取每个文档并检索它包含的句子。我使用迭代器编写了我的函数来回收每个句子。我的代码是这样的:
es1 = Elasticsearch(["http://localhost:9200"], timeout=30)
class Sentences(object):
def __init__(self, index, query):
self.index = index
self.query = query
def __iter__(self):
for doc in scan(es1, query=self.query, index=self.index):
doc_sentences = doc["_source"]["doc_sentences"]
for sentence in doc_sentences:
yield sentence
迭代器似乎最初运行,但过了一段时间我得到错误:“SearchContextMissingException - 找不到id的搜索上下文”,后跟文档ID列表。我试图增加ES超时,但没有帮助。我该怎么做才能克服这个问题?