从 0.99.0 版开始支持添加中文文档。

中文支持允许使用分段而不是使用空格和/或标点符号的简单标记化来添加和标记中文文档。

索引中文文档与索引大多数其他语言的文档不同,因为提取标记的方式不同。虽然大多数语言可以通过分隔字符和空格来区分它们的标记,但这在中文中并不常见。

中文标记化是通过扫描输入文本并根据预定义术语的字典检查每个字符或字符序列并确定最可能的(基于周围的术语和字符)匹配来完成的。

为此,RediSearch 使用Friso中文分词库。这在很大程度上对用户是透明的,通常不需要额外的配置。

示例:在 RediSearch 中使用中文
在伪代码中:

FT.CREATE idx SCHEMA txt TEXT
FT.ADD idx docCn 1.0 LANGUAGE chinese FIELDS txt “Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。从盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。[8]”
FT.SEARCH idx “数据” LANGUAGE chinese HIGHLIGHT SUMMARIZE

Outputs:

数据?… 数据进行写操作。由于完全实现了发布… 数据冗余很有帮助。[8…

使用 Python 客户端:

-- coding: utf-8 --

from redisearch.client import Client, Query
from redisearch import TextField

client = Client(‘idx’)
try:
client.drop_index()
except:
pass

client.create_index([TextField(‘txt’)])

Add a document

client.add_document(‘docCn1’,
txt=’Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。从盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。[8]’,
language=’chinese’)
print client.search(Query(‘数据’).summarize().highlight().language(‘chinese’)).docs[0].txt
印刷:

数据?… 数据进行写操作。由于完全实现了发布… 数据冗余很有帮助。[8…
使用自定义词典
如果你想使用自定义字典,你可以在加载模块时在模块级别这样做。该设置可以指向包含相关设置和字典文件路径的文件FRISOINI的位置 。friso.ini

请注意,没有“默认”friso.ini 文件位置。RediSearch 带有自己的friso.ini字典文件,这些文件在构建时被编译到模块二进制文件中。

作者:Jeebiz  创建时间:2023-03-19 23:17
最后编辑:Jeebiz  更新时间:2024-08-16 11:14