redissearch模糊搜索中文

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

enter image description here

我想在redissearch中进行模糊搜索。

名称是一个文本字段。当我尝试的时候

FT.SEARCH panda_beta.mp2c.job_store.json:index '@name_fts:*店员* @pk:{16509}' RETURN 2 pk company_id LIMIT 0 1

但我找不到结果。

当我尝试set name='大员大学路创智天地店'时

并搜索

FT.SEARCH panda_beta.mp2c.job_store.json:index '@name_fts:*大员* @pk:{16509}' RETURN 2 pk company_id LIMIT 0 1```


the result is output.Why? How can I resolve it?
redis fuzzy-search redis-search
1个回答
0
投票

对于中文,您必须在创建索引时指定语言。

查看

FT.CREATE
文档

语言 {default_lang}

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

LANGUAGE_FIELD {lang_attribute}

是设置为文档语言的文档属性。

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

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

还有

FT.SEARCH
文档

语言{语言}

在搜索查询扩展期间使用所提供语言的词干分析器。如果查询中文文档,请设置为 chinese 以正确标记查询术语。默认为英语。如果发送不支持的语言,该命令将返回错误。请参阅 FT.CREATE 了解语言列表。

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