Nei*_*gan 8 postgresql performance array postgresql-9.3
这是我目前正在使用的:
CREATE FUNCTION array_intersect(a1 anyarray, a2 anyarray)
RETURNS anyarray AS
$$
SELECT ARRAY(
SELECT unnest($1)
INTERSECT SELECT unnest($2)
ORDER BY 1
);
$$ LANGUAGE sql
IMMUTABLE STRICT;
--get the length:
select array_length ( array_intersect(array[...], array[...]), 1);
Run Code Online (Sandbox Code Playgroud)
有没有更快的方法?
你说你正在寻找“两个数组之间的杰卡德相似度”
您可以考虑MadLib ,它提供了这样的功能dist_jaccard()
被视为集合的两个 varchar 向量之间的 Jaccard 距离。
您可能想尝试不使用STRICT
. 这可能会减慢速度。
您可能想使用INTERSECT ALL
尤其是如果您知道 中没有重复的内容$1
。
正如 Craig Ringer 在评论中所说,您可能想退出intarray
并考虑使用&
.
为了在这里给出更准确的答案,
INTERSECT
? 归档时间: |
|
查看次数: |
2671 次 |
最近记录: |