我有一个带有personId的文档(在DB中是一个int)。
我不确定在Elasticsearch中创建文档时应该选择keyword
还是long
?
就空间和性能而言,每个人的利弊是什么? (我只找到text
和keyword
之间的差异,而不是keyword
与long
之间的差异
答案 0 :(得分:4)
某些数据是数字的事实并不意味着应始终将其映射为数字字段。 Elasticsearch索引数字的方式可优化范围查询,而关键字字段则更适合术语查询。通常,在范围查询或聚合中很少使用存储标识符(例如ISBN或标识另一个数据库的记录的任何数字)的字段。这就是为什么将它们映射为关键字而不是整数或long的原因。
答案 1 :(得分:1)
如果你的personId是数据库中的int,我也会选择ES中的myFunction([1,2,2,4,5], function(result){
console.log(result);
})
类型。
function callBack(result){console.log(result);}
myFunction([1,2,2,3,4], callBack);
更适合您不希望通过分析过程并仅存储为精确值的字符串数据。没有整数值这样的东西,你只想存储它的确切值,这正是long
类型所做的。
答案 2 :(得分:0)
long类型的一个缺点是它阻止您使用“突出显示”功能。