メインコンテンツまでスキップ

Standard Analyzer

standard analyzer は Zilliz Cloud のデフォルト analyzer であり、analyzer が指定されていない場合はテキストフィールドに自動的に適用されます。標準の tokenizer と lowercase filter を組み合わせたものです。

Notes

standard analyzer は、単語境界に区切り文字(スペースや句読点など)を使用する言語に適しています。ただし、中国語、日本語、韓国語のような言語では辞書ベースの tokenization が必要です。そのような場合は、正確な tokenization とより良い検索結果を実現するために、chinese のような言語固有の analyzer、または専用の tokenizer(lindera、icu など)と filter を組み合わせたカスタム analyzer の使用を強く推奨します。

定義​

standard analyzer は、次のコンポーネントで構成されます。

  • Tokenizer: standard tokenizer を使用して、連続する Unicode の文字と数字を token に含め、それ以外の文字で分割します。正確な文字のルールについては、Standard Tokenizer を参照してください。

  • Filter: lowercase filter を使用して、すべての token を小文字に変換し、大文字と小文字を区別しない検索を可能にします。詳細については、Lowercase を参照してください。

standard analyzer の機能は、次のカスタム analyzer 設定と同等です。

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

設定​

standard analyzer をフィールドに適用するには、analyzer_params で type を standard に設定し、必要に応じてオプションのパラメーターを含めるだけです。

python
analyzer_params = {
"type": "standard", # Specifies the standard analyzer type
}

standard analyzer は、次のオプションのパラメーターを受け付けます。

パラメーター説明
stop_wordstokenization から削除される stop word のリストを含む配列です。

カスタム stop word の設定例:

python
analyzer_params = {
"type": "standard", # Specifies the standard analyzer type
"stop_words": ["of"] # Optional: List of words to exclude from tokenization
}

analyzer_params を定義した後、コレクションスキーマを定義する際にそれらを VARCHAR フィールドに適用できます。これにより、Zilliz Cloud は指定された analyzer を使用してそのフィールド内のテキストを処理し、効率的な tokenization と filtering を実現できます。詳細については、使用例 を参照してください。

例​

analyzer 設定をコレクションスキーマに適用する前に、run_analyzer メソッドを使用してその動作を確認してください。

Analyzer 設定​

python
analyzer_params = {
"type": "standard", # Standard analyzer configuration
"stop_words": ["for"] # Optional: Custom stop words parameter
}

run_analyzer を使用した検証​

python
from pymilvus import (
MilvusClient,
)

client = MilvusClient(
uri="YOUR_CLUSTER_ENDPOINT",
token="YOUR_CLUSTER_TOKEN"
)

# Sample text to analyze
sample_text = "The Milvus vector database is built for scale!"

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

期待される出力​

sql
Standard analyzer output: ['the', 'milvus', 'vector', 'database', 'is', 'built', 'for', 'scale']