当前位置: 首页 > 知识库问答 >
问题:

找不到要在ElasticSearch中排序的字段映射

沈高峻
2023-03-14

如果发现某些文档不包含排序条件中使用的字段,Elasticsearch在分析查询时抛出SearchParseException

SearchParseException:解析失败[找不到[价格]的映射以便对其进行排序]

如何成功搜索这些文档,即使有些文档缺少price字段?

共有1个答案

翟黎明
2023-03-14

经过更多的挖掘,我找到了下面给出的解决方案。ignore_unmapped应在sort子句中显式设置为true

"sort" : [
       { "rating": {"order" : "desc" , "ignore_unmapped" : true} },
       { "price": {"order" : "asc" , "missing" : "_last" , "ignore_unmapped" : true} }
]

有关更多信息,请查看以下内容的Elasticsearch参考:

  • 缺少值
  • 忽略未映射字段
 类似资料:
  • 问题内容: 如果发现某些文档不包含排序条件中使用的字段,Elasticsearch会在解析时引发查询。 SearchParseException:解析失败[未找到[价格]的映射以进行排序] 即使缺少某些字段,如何才能成功搜索这些文档? 问题答案: 在深入研究之后,我找到了下面给出的解决方案。应该在sort子句中明确设置为。 有关更多信息,请查看Elasticsearch参考: 缺失值 忽略未映射的

  • Sup社区。我有个问题。我正在使用Elasticsearch 6.4 我的数据结构的一部分: 我需要得到按成本排序的文档desc,我需要排序dirs字段中的值date_by字段与nulls-first。 如何对嵌套字段内的值进行排序,而不按此嵌套字段对文档进行排序?

  • 问题内容: 我有一些带有名称字段的文档。我正在使用名称字段的分析版本进行搜索和排序。排序是在一个级别上进行的,即名称首先是按字母顺序排序的。但是在字母列表中,名称是按字典顺序而不是按字母顺序排序的。这是我使用的映射: 谁能提供相同的解决方案? 问题答案: 深入研究Elasticsearch文档,我偶然发现了这一点: 排序和排序规则 不区分大小写的排序 假设我们有三个用户文档,其名称字段分别包含Bo

  • 我想按字段存在对我的ES搜索结果进行排序,假设我得到了字段“价格”,并希望所有有价格的结果都在顶部,所有没有价格的结果都在底部。我知道你可以做一个简单的排序并添加“缺失”:“_last”,例如: {“sort”:[{price':{missing':'u last',order':'asc'}}]} 但在这种情况下,结果也将按价格排序,我不想要它。 没有脚本有办法做到吗?

  • 我将Elasticsearch 6与PHP结合使用。 我的文档有一个嵌套字段,如下所示: 基本上每个文档都有很多价格,但我知道每个文档只有一个价格与过滤器/查询匹配。 我用它来搜索和排序,改编自这里的教程:https://www.elastic.co/guide/en/elasticsearch/guide/current/nested-sorting.html(对PHP数组格式表示抱歉): 我得

  • 我有一个用于使用elasticsearch GeopointSpring引导应用程序。当我保存弹性索引并创建geoDistanceQuery时,我得到了QueryShardException[未能找到geo_point字段[customer]]异常。 我的文件; 储存库; 保存和获取方法;