跳到主要内容

Regex

regex filter 是一个正则表达式过滤器:tokenizer 生成的任何 token 只有在匹配您提供的表达式时才会被保留;其他所有内容都会被丢弃。

配置

regex filter 是 Milvus 中的自定义 filter。要使用它,请在 filter 配置中指定 "type": "regex",并使用 pattern 参数提供正则表达式。

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

regex filter 接受以下可配置参数:

参数

描述

pattern

要匹配 token 的正则表达式模式。仅保留与此模式匹配的 token。

regex filter 对 tokenizer 生成的 term 进行操作,因此必须与 tokenizer 结合使用。

定义 analyzer_params 后,您可以在定义 collection schema 时将其应用于 VARCHAR field。这允许 Milvus 使用指定的 analyzer 处理该 field 中的文本,以实现高效的分词和过滤。有关详细信息,请参阅 示例使用

示例

在将 analyzer 配置应用到您的 collection schema 之前,使用 run_analyzer 方法验证其行为。

Analyzer 配置

{
"tokenizer": "standard",
"filter": [{
"type": "regex",
"expr": "^(?!test)"
}]
}
// java
// node
// go
# curl

使用 run_analyzer 验证

# 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)
// java
// node
// go
# curl

预期输出

['apple', 'banana']