云数据库 GAUSSDB-相似文档排序召回检索函数和操作符:###

时间:2024-11-13 14:46:10

###

场景1:

功能说明:基于BM25算法族计算两个文本间的相似度,只对使用BM25索引的查询有效。

左参数类型:text

右参数类型:text

返回值类型:double precision

代码示例:

-- 建表及BM25索引
gaussdb=# CREATE TABLE t1(_id TEXT UNIQUE, title TEXT, texts TEXT, metadata TEXT) WITH (storage_type=astore);
gaussdb=# CREATE INDEX "bm25_idx1" ON "t1" USING bm25 ("texts");
-- 执行检索
gaussdb=# SELECT /*+ indexscan(t1, bm25_idx1) */ _id, texts ### 'drop table t1;' AS SCORE FROM t1 ORDER BY SCORE desc LIMIT 10;

场景2:

功能说明:基于BM25算法族计算两个分词文本数组间的相似度,只对使用BM25索引的查询有效。

左参数类型:text[]

右参数类型:text[]

返回值类型:double precision

代码示例:

-- 建表及BM25索引
gaussdb=# CREATE TABLE st_information (st_id SERIAL PRIMARY KEY, st_name TEXT[], st_email TEXT[]);
gaussdb=# CREATE INDEX st_information_st_email_bm25_index ON st_information USING bm25(st_email);
-- 执行检索
gaussdb=# SELECT /*+ indexscan(st_information, st_information_st_email_bm25_index) */ st_id, st_email ### '{common-domain@xyz.com}' AS score FROM st_information ORDER BY SCORE desc LIMIT 10;
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-1682.html