Yad*_*adu 103 sorting mapping elasticsearch
SearchParseException
如果发现某些文档不包含排序条件中使用的字段,则Elasticsearch会抛出一段时间解析查询.
SearchParseException:Parse Failure [找不到[price]的映射以便排序]
我怎样才能成功搜索这些文件,即使有些人遗漏了这些文件price
?
Yad*_*adu 105
在挖掘更多之后,我找到了解决方案,如下所示.ignore_unmapped
应该true
在sort子句中显式设置.
"sort" : [
{ "rating": {"order" : "desc" , "ignore_unmapped" : true} },
{ "price": {"order" : "asc" , "missing" : "_last" , "ignore_unmapped" : true} }
]
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看Elasticsearch参考资料:
小智 39
请注意,"ignore_unmapped"现在已弃用,取而代之的是"unmapped_type".这是作为#7039的一部分完成的
从文档: 1.4.0之前有一个ignore_unmapped布尔参数,它不足以决定要发出的排序值,并且不适用于跨索引搜索.它仍然受支持,但鼓励用户迁移到新的unmapped_type.
默认情况下,如果没有与字段关联的映射,搜索请求将失败.unmapped_type选项允许忽略没有映射但不按其排序的字段.此参数的值用于确定要发出的排序值.以下是如何使用它的示例:
{
"sort" : [
{ "price" : {"unmapped_type" : "long"} },
],
"query" : {
"term" : { "user" : "kimchy" }
}
}
Run Code Online (Sandbox Code Playgroud)
如果查询的任何索引没有价格映射,那么Elasticsearch将处理它,好像存在long类型的映射,此索引中的所有文档都没有该字段的值.
归档时间: |
|
查看次数: |
56782 次 |
最近记录: |