十进制数字Compatible with Milvus 3.0.0+
decimaldigit 过滤器是一个内置的标记过滤器,用于将受支持脚本中的Unicode十进制数字转换为ASCII数字。这使得不同语言和书写系统中的数字标记保持一致。
配置
对于阿拉伯语文本,内置的 arabic 分析器已包含decimaldigit 过滤器。若在自定义分析器管道中需要数字规范化处理,请直接使用decimaldigit 。
要在自定义分析器中使用decimaldigit 过滤器,请将其添加到analyzer_params 文件中的filter 部分:
analyzer_params = {
"tokenizer": "standard",
"filter": ["decimaldigit"],
}
decimaldigit 过滤器没有可配置的参数。
该过滤器将 Unicode 十进制数字(包括阿拉伯-印度数字、泰语数字、天城文数字、孟加拉语数字和全宽数字)转换为 ASCII 数字。它对词法分析器生成的令牌进行处理。上述配置仅作为自定义分析器的示例,并未包含完整的阿拉伯语处理管道。
示例
在将分析器配置应用于您的 Collection Schema 之前,请使用 `run_analyzer ` 方法验证其行为。
分析器配置
analyzer_params = {
"tokenizer": "standard",
"filter": ["decimaldigit"],
}
使用以下方法进行验证run_analyzer
from pymilvus import MilvusClient
client = MilvusClient(uri="http://localhost:19530")
sample_text = "Arabic ١٢٣ Thai ๑๒๓ Devanagari १२३ Fullwidth 123"
result = client.run_analyzer(sample_text, analyzer_params)
print(result)
预期输出
['Arabic', '123', 'Thai', '123', 'Devanagari', '123', 'Fullwidth', '123']