我正在对包含 18,000 个主题的结果集进行 Elasticsearch 调用。因此我使用search_after。但在第一次使用此参数后我收到以下错误。
Unknown key for a VALUE_STRING in [search_after]
我使用的是elasticsearch 5.1,查询如下
{
"query": {
"bool": {
"filter": [
{
"bool": {
"should": [
{
"match": {
"CategoryId": "1-4534"
}
}
],
"minimum_should_match": 1
}
}
]
}
},
"size": 100,
"from": 0,
"sort": {"Name":"asc"} ,
"search_after": "D106891_1"
}
要求不是对 Elasticsearch 可以返回的结果数量设置任何明确的限制(默认为 10,000),而是设置一些分页,以防止将来用户数据超过设定限制时代码出现任何问题。我通过循环发送查询来执行分页,一次性获取 100 个主题。这是通过将大小设置为 100 并将增量值设置为 每次迭代从增加100。当我到达 from+size = 10000 时,我添加 search_after 但它失败并出现上述错误。如果我可以提供更多信息,请告诉我。谢谢。
最佳答案
我只需对 search_after 和 Name.lowercase 使用数组而不是 Name,因为这就是 Name 属性的映射的编写方式(如下所示)
"Name": {
"type": "text",
"fields": {
"lowercase": {
"type": "text",
"analyzer": "mdm_lowercase_analyzer",
"fielddata": true
},
"raw": {
"type": "keyword"
}
}
}
关于elasticsearch - [search_after] 错误中 VALUE_STRING 的未知键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57654161/