10進数字Compatible with Milvus 3.0.0+
decimaldigit フィルターは、サポートされている文字体系のUnicode 10進数字をASCII数字に変換する組み込みのトークンフィルターです。これにより、言語や文字体系を問わず、数値トークンの表現が統一されます。
設定
アラビア語のテキストについては、組み込みの arabic アナライザーには、すでにdecimaldigit フィルターが含まれています。カスタムアナライザーパイプラインで数字の正規化が必要な場合は、decimaldigit を直接使用してください。
カスタムアナライザーでdecimaldigit フィルターを使用するには、analyzer_params 内のfilter セクションに追加します:
analyzer_params = {
"tokenizer": "standard",
"filter": ["decimaldigit"],
}
decimaldigit フィルターには設定可能なパラメータはありません。
このフィルタは、アラビア・インド系、タイ語、デーヴァナーガリー、ベンガル語、および全角数字を含むUnicode 10進数字を、ASCII数字に変換します。これは、トークナイザによって生成されたトークンを対象として動作します。上記の設定は意図的にカスタムアナライザの例として示されたものであり、完全なアラビア語処理パイプラインは含まれていません。
例
アナライザーの設定をコレクションスキーマに適用する前に、run_analyzer メソッドを使用してその動作を確認してください。
アナライザの設定
analyzer_params = {
"tokenizer": "standard",
"filter": ["decimaldigit"],
}
xml-ph-0000@deepl.internal を使用した検証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']