要获取的数据大小:大约20,000
问题:在python中使用以下命令搜索Elastic Search索引数据
但没有得到任何结果。
from pyelasticsearch import ElasticSearch
es_repo = ElasticSearch(settings.ES_INDEX_URL)
search_results = es_repo.search(
query, index=advertiser_name, es_from=_from, size=_size)
如果我给的尺寸小于或等于10,000,则可以正常工作,但不能与20,000相匹配, 请帮助我找到最佳的解决方案。
PS:在深入研究ES时发现此消息错误:
结果窗口太大,从+大小必须小于或等于:[10000],但为[19999]。有关请求大数据集的更有效方法,请参见滚动API。
对于实时使用,最好的解决方案是在查询后使用搜索。您只需要一个日期字段和另一个唯一标识文档的_id
字段-
一个字段或一个_uid
字段就足够了。尝试类似的事情,在我的示例中,我想提取属于一个用户的所有文档-在我的示例中,用户字段具有keyword datatype
:
from elasticsearch import Elasticsearch
es = Elasticsearch()
es_index = "your_index_name"
documento = "your_doc_type"
user = "Francesco Totti"
body2 = {
"query": {
"term" : { "user" : user }
}
}
res = es.count(index=es_index, doc_type=documento, body= body2)
size = res['count']
body = { "size": 10,
"query": {
"term" : {
"user" : user
}
},
"sort": [
{"date": "asc"},
{"_uid": "desc"}
]
}
result = es.search(index=es_index, doc_type=documento, body= body)
bookmark = [result['hits']['hits'][-1]['sort'][0], str(result['hits']['hits'][-1]['sort'][1]) ]
body1 = {"size": 10,
"query": {
"term" : {
"user" : user
}
},
"search_after": bookmark,
"sort": [
{"date": "asc"},
{"_uid": "desc"}
]
}
while len(result['hits']['hits']) < size:
res =es.search(index=es_index, doc_type=documento, body= body1)
for el in res['hits']['hits']:
result['hits']['hits'].append( el )
bookmark = [res['hits']['hits'][-1]['sort'][0], str(result['hits']['hits'][-1]['sort'][1]) ]
body1 = {"size": 10,
"query": {
"term" : {
"user" : user
}
},
"search_after": bookmark,
"sort": [
{"date": "asc"},
{"_uid": "desc"}
]
}
然后,您将找到附加到result
var的所有文档
如果您想在此处使用scroll query
-doc
:
from elasticsearch import Elasticsearch, helpers
es = Elasticsearch()
es_index = "your_index_name"
documento = "your_doc_type"
user = "Francesco Totti"
body = {
"query": {
"term" : { "user" : user }
}
}
res = helpers.scan(
client = es,
scroll = '2m',
query = body,
index = es_index)
for i in res:
print(i)
问题内容: 要获取的数据大小:大约20,000 问题:在python中使用以下命令搜索Elastic Search索引数据 但没有得到任何结果。 如果我给的尺寸小于或等于10,000,则可以正常使用,但不能与20,000一起使用, 请帮助我找到最佳的解决方案。 PS:在深入研究ES时发现此消息错误: 结果窗口太大,从+大小必须小于或等于:[10000],但为[19999]。有关请求大数据集的更有效
在学习ElasticSearch的过程中,我偶然发现并没有得出最终结论。 ElasticSearch的最大碎片大小是多少
我有一个问题,在elasticsearch与mongob建立河流。如果日期的大小在一百万以内,我可以从mongob导入数据。但是当数据很大1000万或更大时,河流无法索引来自mongob集合的所有记录。 我在日志中看到这个错误 通常说river stale是错误的几次。此外,我在mongodb设置中的oplog大小为1024MB。
我正在尝试对驻留在elastic中的数据执行4个操作。精确匹配(等于),包含,小于,大于。elastic中有两个选项,即query和filter,据我所知,这两个选项的作用相同,但query计算的分数与数据条件值关系最匹配。 我想做的是简单的过滤或查询(我很困惑,他们网站上提到的方式) 精确匹配,如或或 包含类似name Contains或email Contains 大于like
如何在elasticsearch聚合中使用分页(size和from),我在Agregition中使用了size和from,它为exmaple抛出异常<我想问一下? 得到 /index/nameorder/_search
我正在尝试使用弹性搜索的内部点击功能来检索子文档内容。我的查询包含两个has_child子句,如下面的代码片段所示。我所观察到的是,我只获得了内部点击响应中属于第二个子子句的那些子内容。看起来最后的内部点击覆盖了第一个内部点击。 有什么方法可以同时获得内心的点击率吗? 下面是我使用的查询。