gpt4 book ai didi

python - Python Elasticseach索引错误

转载 作者:行者123 更新时间:2023-12-03 00:34:59 25 4
gpt4 key购买 nike

在今天之前,Elasticsearch运作良好且良好。

问题:

某些文档因错误而无法建立索引:

u'Limit of total fields [1000] in index [mintegral_incent] has been exceeded' 

错误:
"BulkIndexError: (u'14 document(s) failed to index.', [{u'index': {u'status': 400, u'_type': u'mintegral_incent', u'_id': u'168108082', u'error': {u'reason': u'Limit of total fields [1000] in index [mintegral_incent] has been exceeded', u'type': u'illegal_argument_exception'}

使用Amazon Elastic Service

Elasticsearch 5.1版

ES设置:
from elasticsearch import Elasticsearch
from elasticsearch import helpers
es_repo = Elasticsearch(hosts=[settings.ES_INDEX_URL],
verify_certs=True)

代码给出问题:
def bulk_index_offers(index_name, id_field, docs):
actions = []
for doc in docs:
action = {
"_index": index_name,
"_type": index_name,
"_id": doc.get(id_field),
"_source": doc
}
actions.append(action)
# Error at this following line.
resp = helpers.bulk(es_repo, actions)
return resp

我试过的

我尝试将块设置为较小,并将read_timeout从默认的10增加到30
像这样: resp = helpers.bulk(es_repo, actions, chunks=500, read_timeout=30)
但是仍然面临着同样的问题。

请帮忙。

最佳答案

默认情况下,仅contain up to 1000 fields允许使用映射类型,看来您超出了该限制。为了增加该阈值,您可以运行以下命令:

PUT mintegral_incent/_settings
{
"index": {
"mapping": {
"total_fields": {
"limit": "2000"
}
}
}
}

使用curl,它看起来像这样:
curl -XPUT http://<your.amazon.host>/mintegral_incent/_settings -d '{ 
"index": {
"mapping": {
"total_fields": {
"limit": "2000"
}
}
}
}'

然后,您可以再次运行您的批量脚本,它应该可以工作。

关于python - Python Elasticseach索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46197379/

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