BM25索引
实现了相似文本BM25索引访问方法,比如创建、维护、检索等。创建索引格式请参见《参考》中“SQL参考 > SQL语法 > C > CREATE INDEX”章节。BM25索引不支持UNIQUE、CONCURRENTLY。
- 重建索引请参见《参考》中“SQL参考 > SQL语法 > R > REINDEX”章节。
- 删除索引请参见《参考》中“SQL参考 > SQL语法 > D > DROP INDEX”章节。
- GLOBAL
分区表GLOBAL索引不支持。
- ASC
不支持。
- CONCURRENTLY
不支持。
- UNIQUE
不支持。
- COLLATE collation
不支持。
- DEDUPLICATION
不支持复合索引。
- USING method
指定创建索引的方法。
新增可选索引类型BM25:BM25索引,针对文本和文本数组数据的词倒排相似文本检索索引。
- WITH ( {storage_parameter = value} [, ... ] )
指定索引方法的存储参数。
- storage_parameter:数据存储格式,取值范围{"USTORE", "ASTORE"},需要和原数据表保持一致。
- num_parallels:建索引并行度,取值范围1-64的整数,默认值为1。
- tokenize_dict:文本数据分词使用词典名,默认值pg_catalog.simple_cn_segmentation为系统默认内置中英文分词词典。具体词典使用和创建方法请参考自定义Tokenweight分词词典。
- token_hash_bucket_capacity:自定义存储token哈希表的大小,取值范围1000~100000000的整数,默认为10000000。
| 函数名 | 描述 |
|---|---|
| gs_bm25build | 创建基于倒排词的BM25索引。 |
| gs_bm25buildempty | 反馈空索引。 |
| gs_bm25options | 为索引解析并验证reloptions数组。 |
| gs_bm25insert | 将新的元组插入到现有索引中,维护BM25索引。 |
| gs_bm25beginscan | 打开索引内部倒排词表容器,准备后续查询。 |
| gs_bm25gettuple | 此函数提供执行器获得一条索引数据,在其中实现BM25评分排序检索的核心步骤。 |
| gs_bm25rescan | 重置索引扫描结构体上的变量。 |
| gs_bm25endscan | 清空索引扫描结构体上的变量并释放。 |
| gs_bm25bulkdelete | 将所有索引中的死元组进行重置并且放入FSM中。 |
| gs_bm25vacuumcleanup | 更新BM25索引统计信息。 |
| gs_bm25costestimate | 针对BM25扫描过程进行代价评估。 |
| 函数名 | 描述 |
|---|---|
| gs_bm25_tokenize(text, cstring) | 使用指定词典对输入文本进行分词操作,返回被分割的单词文本数组。 |
| gs_bm25_inspect(text) | 显示索引磁盘使用和内部词倒排信息等数据。 |
| gs_bm25_distance_text(text, text) | 返回bm25文档相似分数,只在使用BM25索引检索时有效。 |
| gs_bm25_distance_textarr(text[], text[]) | 返回bm25文档相似分数,只在使用BM25索引检索时有效。 |
| 参数名 | 级别 | 描述 |
|---|---|---|
| bm25_ranking_metric | 会话级(session) | 参数数值对应检索时相似文档的评分算法: 0:BM25_OKAPI (默认值), 1:BM25_ATIRE, 2:BM25_L, 3:BM25_PLUS, 4:TF_IDF。 取值范围: [0,127],默认值0。设置为定义范围外的参数数值时使用默认BM25_OKAPI算法。 |
| bm25_ncandidates | 会话级(session) | 预估索引召回文档数量,推荐使用默认值,过大或者过小的数值会使相似文档排序的索引检索时间变慢。 在查询语句混合where条件使用时,该值失效,数据库会自动估计合适的索引召回文档数量。 取值范围: [0,65535],默认值128。 |