我们希望对关键字(可以包含字母,数字和特殊字符)进行不敏感排序,并始终将缺失和空键放在最后,无论我们是按升序还是降序排序。在ES 5.0中执行此操作的最佳方法是什么?我们正在探索脚本排序或编写自定义比较器。请指教。感谢
答案 0 :(得分:1)
我们最近遇到了同样的问题,试图找出为什么我们的字母排序大约95%是正确的。我们有一些关键字存储在CAPS中,一些小写,一些混合大小写。如果您使用关键字字段进行排序,就像他们在文档中推荐的那样,您将成为弹性使用的词典顺序的受害者。这将为您提供BROWN, Boffey, bailey
的示例节目。
他们说要绕过这个,你应该有一个带有小写过滤器的关键字字段。文档未更新以显示的是,此新字段必须是text
类型,并且还需要将fieldata
设置为true。否则,您将收到错误消息,告知您fieldata
已被禁用。他们这样做是为了防止你对可能消耗大量堆的已分析字段进行排序,但据我所知,这是在不使用脚本的情况下实现真正按字母顺序排列,不区分大小写的排序的唯一方法。