跳到主要内容
版本:v2.5.x

Regex

regex 过滤器是一种正则表达式过滤器:令牌生成器生成的任何令牌只有在与您提供的表达式匹配时才会被保留,否则都会被丢弃。

配置

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

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

regex 过滤器接受以下可配置参数。

参数

参数

expr

应用于每个标记的正则表达式模式。匹配的标记将被保留;不匹配的标记将被删除。有关 regex语法的详细信息,请参阅语法。

regex 过滤器对 Tokenizer(分词器)生成的 Token(词元)进行操作,因此必须与 Tokenizer(分词器)结合使用。

定义 analyzer_params 后,可以在定义 Collection Schema 时将其应用到 VARCHAR 字段。这样,Milvus 就可以使用指定的分析器对该字段中的文本进行处理,从而实现高效的标记化和过滤。有关详情,请参阅 示例使用

示例

在将分析器配置应用到 Collection Schema 之前,请使用 run_analyzer 方法验证其行为。

Analyzer 配置

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

验证使用 run_analyzer

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

# Run the standard analyzer with the defined configuration
result = MilvusClient.run_analyzer(sample_text, analyzer_params)
print(result)

预期输出

Python
['apple', 'banana']