跳到主要内容
版本:v3.0.x

ASCII 折叠

asciifolding 过滤器可将基本拉丁统一码块(前 127 个 ASCII 字符)以外的字符转换为其 ASCII 对应字符。例如,它可将í 等字符转换为i ,使文本处理更简单、更一致,特别是对于多语言内容。

配置

asciifolding 过滤器内置在 Milvus 中。要使用它,只需在analyzer_params 中的filter 部分指定其名称即可。

analyzer_params = {
"tokenizer": "standard",
"filter": ["asciifolding"],
}

asciifolding 过滤器对标记符生成的术语进行操作,因此必须与标记符结合使用。有关 Milvus 中可用的标记化器列表,请参阅标准标记化器及其同类页面。

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

示例

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

分析器配置

analyzer_params = {
"tokenizer": "standard",
"filter": ["asciifolding"],
}

验证使用run_analyzerCompatible with Milvus 2.5.11+

from pymilvus import (
MilvusClient,
)

client = MilvusClient(uri="http://localhost:19530")

# Sample text to analyze
sample_text = "Café Möller serves crème brûlée and piñatas."

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

预期输出

['Cafe', 'Moller', 'serves', 'creme', 'brulee', 'and', 'pinatas']