中文支持
Redis Stack 中搜索和查询的中文支持
从版本 0.99.0 开始支持添加中文文档。
中文支持允许使用分段添加和标记中文文档 而不是使用空格和/或标点符号进行简单的标记化。
为中文文档编制索引与在大多数其他 语言,因为令牌的提取方式。虽然大多数语言都可以 它们的标记通过分隔字符和空格来区分,则 this 在中文中并不常见。
中文分词是通过扫描输入文本并检查每个 针对预定义术语词典的字符或字符序列, 以及根据周围的术语和字符确定最可能的匹配项。
Redis Stack 为此使用了 Friso 中文分词库。这在很大程度上是透明的 用户,通常不需要其他配置。
示例:在查询中使用中文
在伪代码中:
FT.CREATE idx ON HASH SCHEMA txt TEXT
HSET docCn txt "Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。从盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。[8]"
FT.SEARCH idx "数据" LANGUAGE chinese HIGHLIGHT SUMMARIZE
# Outputs:
# <b>数据</b>?... <b>数据</b>进行写操作。由于完全实现了发布... <b>数据</b>冗余很有帮助。[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
# Outputs:
# <b>数据</b>?... <b>数据</b>进行写操作。由于完全实现了发布... <b>数据</b>冗余很有帮助。[8...
使用自定义词典
如果您希望使用自定义字典,您可以在
加载模块。这FRISOINI
设置可以指向friso.ini
包含相关设置和字典路径的文件
文件。
请注意,没有默认值friso.ini
文件位置。RediSearch 附带
自己friso.ini
和 dictionary 文件,它们被编译到模块中
binary 的