Redisearch 使用中文返回意外结果

问题描述 投票:0回答:1

架构

TagField("$.id", as_name="id"),
TextField("$.brand", as_name="brand"),
TextField("$.title", as_name="title"),
TextField("$.category", as_name="category"),
TextField("$.param", as_name="param"),
TextField("$.tags", as_name="tags"),
NumericField("$.price", as_name="price"),
NumericField("$.comments.positive_ratio", as_name="positive_ratio"),

redisearch problem

意想不到的原因

  1. 不允许发中文帖子,我附上我的快照
  2. 使用中文时出现意外的返回结果,解释结果可以告诉你差异
  3. 我在 redis.io 中找不到足够的文档来解决这个问题
search cjk redisearch
1个回答
0
投票

来自FT.CREATE

文档

语言 {default_lang} 如果设置,则指示索引中文档的默认语言。默认是英文。

LANGUAGE_FIELD {lang_attribute} 是文档属性设置为文档语言。

词干分析器用于索引期间提供的语言。如果发送不支持的语言,该命令将返回错误。支持的语言有阿拉伯语、巴斯克语、加泰罗尼亚语、丹麦语、荷兰语、英语、芬兰语、法语、德语、希腊语、匈牙利语、印度尼西亚语、爱尔兰语、意大利语、立陶宛语、尼泊尔语、挪威语、葡萄牙语、罗马尼亚语、俄语、西班牙语、瑞典语、泰米尔语、土耳其语和中文。

添加中文文档时,将索引器设置为 LANGUAGE chinese 以正确标记术语。如果您使用默认语言,则会根据标点符号和空格提取搜索词。中文分词器使用分段算法(通过 Friso),该算法对文本进行分段并根据预定义的字典进行检查。请参阅词干获取更多信息。

您必须将您的索引定义为中文索引,以便 RediSearch 使用正确的索引方法。

© www.soinside.com 2019 - 2024. All rights reserved.