跳到主要内容
版本:Cloud 开发指南

Regex
公测版

regex 过滤器是一种正则表达式过滤器:只有匹配你提供的表达式的 token 才会被保留,其余的都会被丢弃。

配置

regex 过滤器在 Zilliz Cloud 中属于自定义过滤器。 要使用它,请在过滤器配置中指定 "type": "regex",并通过 expr 参数设定所需的正则表达式。

analyzer_params = {
"tokenizer": "standard",
"filter": [{
"type": "regex",
"expr": "^(?!test)" # keep tokens that do NOT start with "test"
}]
}

regex 过滤器支持以下可配置参数:

参数

描述

expr

应用于每个 token 的正则表达式模式。匹配的 token 会被保留;不匹配的会被丢弃。

关于正则语法的详细信息,请参考 Syntax

regex 过滤器作用于分词器生成的词项,因此必须与分词器结合使用。

定义 analyzer_params 后,您可以在定义 Collection Schema 时将其应用于 VARCHAR 字段。这使得 Zilliz Cloud 能够使用指定的分析器处理该字段中的文本,以实现高效的分词和过滤。更多信息,请参阅使用示例

示例输出

在完成 Analyzer 配置后,您可以使用 run_analyzer 方法来验证分词效果是否符合预期。

Analyzer 配置

analyzer_params = {
"tokenizer": "standard",
"filter": [{
"type": "regex",
"expr": "^(?!test)"
}]
}

使用 run_analyzer 验证效果

from pymilvus import (
MilvusClient,
)

client = MilvusClient(uri="YOUR_CLUSTER_ENDPOINT")

# Sample text to analyze
sample_text = "testItem apple testCase banana"

# Run the standard analyzer with the defined configuration
result = client.run_analyzer(sample_text, analyzer_params)
print("Standard analyzer output:", result)

预期结果

['apple', 'banana']