跳到主要内容

中文 Analyzer

中文 Analyzer 专门设计用于处理中文文本,提供有效的分段和分词。

定义

中文 Analyzer 由以下部分组成:

  • 分词器:使用 jieba 分词器根据词汇和上下文将中文文本分割成标记。更多内容,可以参考Jieba

  • 过滤器:使用 cnalphanumonly 过滤器去除包含任何非中文字符的标记。更多内容,可以参考Cnalphanumonly

中文 Analyzer 的功能等同于以下自定义分析器配置:

📘说明

内置的中文 Analyzer 不会输出拼音形式的分词。若需要用拼音查询词匹配中文文本,请创建自定义 Analyzer,并在其中同时使用 jieba 分词器和 pinyin 过滤器。

python
analyzer_params = {
"tokenizer": "jieba",
"filter": ["cnalphanumonly"]
}

配置

要将中文 Analyzer 应用于字段,只需在 analyzer_params 中将 type 设置为 chinese,并根据需要包含可选参数。

python
analyzer_params = {
"type": "chinese",
}
📘说明

中文 Analyzer 不接受任何可选参数。

使用示例

在完成 Analyzer 配置后,您可以使用 run_analyzer 方法来验证分词效果是否符合预期。

Analyzer 配置

python
analyzer_params = {
"type": "chinese",
}

使用 run_analyzer 验证效果

python
from pymilvus import (
MilvusClient,
)

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

# Sample text to analyze
sample_text = "Milvus 是一个高性能、可扩展的向量数据库!"

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

预期输出

python
Chinese analyzer output: ['Milvus', '是', '一个', '高性', '性能', '高性能', '可', '扩展', '的', '向量', '数据', '据库', '数据库']
Ctrl I