gpt4 book ai didi

python - 如何更改 Elasticsearch 8 中不推荐使用 'body' 参数的语法?

转载 作者:行者123 更新时间:2023-12-05 08:29:20 25 4
gpt4 key购买 nike

将 Python 包 elasticsearch 从 7.6.0 更新到 8.1.0 后,我开始在这行代码处收到错误:

count = es.count(index=my_index, body={'query': query['query']} )["count"]

收到以下错误信息:

DeprecationWarning: The 'body' parameter is deprecated and will beremoved in a future version. Instead use individual parameters.
count = es.count(index=ums_index, body={'query': query['query']})["count"]

我不明白如何使用上述“个别参数”。这是我的查询:

query = {
"bool": {
"must":
[
{"exists" : { "field" : 'device'}},
{"exists" : { "field" : 'app_version'}},
{"exists" : { "field" : 'updatecheck'}},
{"exists" : { "field" : 'updatecheck_status'}},
{"term" : { "updatecheck_status" : 'ok'}},
{"term" : { "updatecheck" : 1}},
{
"range": {
"@timestamp": {
"gte": from_date,
"lte": to_date,
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd"
}
}
}
],
"must_not":
[
{"term" : { "device" : ""}},
{"term" : { "updatecheck" : ""}},
{"term" : { "updatecheck_status" : ""}},
{
"terms" : {
"app_version" : ['2.2.1.1', '2.2.1.2', '2.2.1.3', '2.2.1.4', '2.2.1.5',
'2.2.1.6', '2.2.1.7', '2.1.2.9', '2.1.3.2', '0.0.0.0', '']
}
}
]
}
}

在官方文档中,我找不到任何机会找到如何在新版本的 Elasticsearch 中传递我的查询的示例。

除了恢复到以前版本的 Elasticsearch 之外,可能有人针对这种情况有解决方案?

最佳答案

使用 Elasticsearch 8.4.1,我在通过 Python 客户端创建索引时收到相同的警告。

我不得不这样做:

settings = {
"number_of_shards": 2,
"number_of_replicas": 1
}
mappings = {
"dynamic": "true",
"numeric_detection": "true",
"_source": {
"enabled": "true"
},
"properties": {
"p_text": {
"type": "text"
},
"p_vector": {
"type": "dense_vector",
"dims": 768
},
}
}

es.indices.create(index=index_name, settings=settings, mappings=mappings)

希望这对您有所帮助。

关于python - 如何更改 Elasticsearch 8 中不推荐使用 'body' 参数的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71577892/

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