Typesense短词模糊搜索失效咨询:搜索‘brd’无匹配结果
Typesense短词模糊搜索不生效问题解决
问题原因
Typesense默认的模糊匹配逻辑是:
- 仅对长度≥5的搜索词自动启用编辑距离(允许字符增减、替换)匹配
- 长度≤4的短词,默认
num_typos(允许的拼写错误数)为0,不会触发模糊匹配,所以搜brd(3字符)时,找不到bird、bard这类仅相差1个字符的结果。
解决方案
需要在搜索参数中手动指定num_typos,强制为短词开启模糊匹配:
修改后的搜索参数代码:
const searchParameter = { 'q': "brd", 'query_by': 'title', 'num_typos': 1 // 允许最多1个字符的差异,适配缺字符、错字符场景 }
补充说明
对于4字符的搜索词,同样需要显式设置num_typos(比如设为1),因为默认4字符词的num_typos是0,不会自动触发模糊搜索。
原问题场景
用户原搜索参数:
const searchParameter = { 'q': "brd", 'query_by': 'title', }
返回结果:
{ "facet_counts": [], "found": 0, "hits": [], "out_of": 9979, "page": 1, "request_params": { "collection_name": "books", "per_page": 10, "q": "brd" }, "search_cutoff": false, "search_time_ms": 0 }
内容的提问来源于stack exchange,提问作者Santhosh
相关产品推荐
相关产品推荐

