我正在使用Elasticsearch 6.6.0和elasticsearch-py 6.3.0。我将一些数据放入Elasticsearch,然后使这个小函数返回Elasticsearch中特定变量的所有值的列表:
from elasticsearch import Elasticsearch
es = Elasticsearch
def get_prior_records():
records = es.search(
index="my_index",
body={"query": {"match_all": {}}, "_source": ["var_i_want"]})
return [item["_source"]["var_i_want"] for item in records["hits"]["hits"]]
我第一次运行此函数时,它可以完美运行并返回数据库中var_i_want
的所有实例的列表。但是,当我向数据库中添加更多数据(并通过Kibana确认数据在那里)时,该功能会不断将原始列表返回给我。我找不到包含我的新数据的列表。
我在做什么错?为什么我的搜索不会更新其结果?
答案 0 :(得分:1)
可能的原因是您未在寻呼。
default size of search hits由搜索请求正文中提供的“大小”属性控制,默认情况下为10。
如果要获取结果的下一页,请使用大小和查询api中的属性进行查询。