日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

數組相似度計算(smlar)

smlar插件可以用來計算兩個相同類型數組的相似度。

前提條件

  • 請確保實例大版本滿足要求,本插件具體支持的實例大版本,請參見支持插件列表

  • 如實例大版本已滿足要求,但仍提示不支持,請升級內核小版本,具體操作,請參見升級內核小版本

背景信息

smlar插件提供多種函數計算兩個相同類型數組的相似度,同時提供參數來控制相似度計算方法,目前支持所有內置的數據類型。

基本函數介紹

  • float4 smlar(anyarray, anyarray)

    計算兩個相同數據類型數組的相似度。

  • float4 smlar(anyarray, anyarray, bool useIntersect)

    計算兩個自定義復合類型(元素,權重)數組的相似度,復合類型如下:

    CREATE TYPE type_name AS (element_name anytype, weight_name FLOAT4);

    useIntersect為true時,計算過程只包含重疊元素的部分;為false時計算過程包含所有元素。

  • float4 smlar( anyarray a, anyarray b, text formula )

    計算兩個相同數據類型數組的相似度,數組通過formula指定。

    formula的預定義變量說明如下:

    • N.i:兩個數組的共有元素的個數。

    • N.a:數組a中不重復元素的個數。

    • N.b:數組b中不重復元素的個數。

  • float4 set_smlar_limit(float4)

    設置參數smlar.threshold的值。

  • float4 show_smlar_limit()

    查看參數smlar.threshold的值。

  • anyarray % anyarray

    如果兩個數組的相似度大于參數smlar.threshold的值,返回true,否則返回false。

  • text[] tsvector2textarray(tsvector)

    轉化tsvector類型為text。

  • anyarray array_unique(anyarray)

    對數組中的元素排序,排序結果不包含重復元素。

  • float4 inarray(anyarray, anyelement)

    如果anyelement存在于anyarray中,返回1,否則返回0。

  • float4 inarray(anyarray, anyelement, float4, float4)

    如果anyelement存在于anyarray中,返回第3個參數,否則返回第4個參數。

相關參數說明和支持的數據類型請參見smlar

使用插件

  • 連接實例后創建smlar插件,命令如下:

    testdb=> create extension smlar;
  • 驗證插件基本功能,示例如下:

    testdb=> SELECT smlar('{1,4,6}'::int[], '{5,4,6}' );
      smlar   
    ----------
     0.666667
    (1 row)
    testdb=> SELECT smlar('{1,4,6}'::int[], '{5,4,6}', 'N.i / sqrt(N.a * N.b)' );
      smlar   
    ----------
     0.666667
    (1 row)
  • 卸載插件,命令如下:

    testdb=> drop extension smlar;