我在使用ElasticSearch对null列进行排序时遇到问题。以前,我使用sql查询COALESCE
从列中获取非null值。如何对列中的非空值进行排序?
SQL查询
ORDER BY COALESCE(
NULLIF(table1.colA,''),
NULLIF(table1.colB,''),
NULLIF(table1.colC,'')
) DESC
上面的语句将检查colA是否有价值,然后选择colA。如果colA为null,它将检查colB。
如何在Elasticsearch中使用COALESCE
类似功能进行排序?
答案 0 :(得分:1)
您可以将script based scoring与该功能配合使用,完全控制_score
字段的计算方式。
根据您的情况,您可以编写一个小的脚本来返回文档中的第一个非空字段。