我使用的是Elasticsearch 6.8和python 3。
我在我的笔记本上运行,有一个节点,没有线程/进程插入/更新/删除文档到索引,而我运行多搜索
我正在运行以下多个搜索命令:
es = Elasticsearch()
search_arr = []
# search-1
search_arr.append({'index': 'test1', 'type': 'type1'})
search_arr.append({"query": {"term": {"confidence": "1"}}})
# search-2
search_arr.append({'index': 'test1', 'type': 'type1'})
search_arr.append({"query": {"match_all": {}}, 'from': 0, 'size': 2})
request = ''
for each in search_arr:
request += '%s \n' % json.dumps(each)
res = es.msearch(body=request)
print("First Query, num of results = ", res['responses'][0]['hits']['total'])
print("Second Query, num of results = ", res['responses'][1]['hits']['total'])每次运行这段代码时,我都会得到不同的结果(正如我前面写的,没有插入/删除/更新文档的进程)
为什么每次我都得到不同的结果?
我需要做些什么才能修复它并获得一致的结果?
发布于 2020-01-03 06:49:15
我找到了问题的原因。
在第一次添加新数据之后,我需要添加refresh = True。
(我增加了数千个新文档,并在使用了多个搜索之后)。
https://stackoverflow.com/questions/59569746
复制相似问题