网页在线页面,搜索功能目前发现有很多时候搜不到内容。
1.如果文件名是用数字命名,比如20260810,似乎搜索少于3位数的文件名是无法搜索到的
2.以下几个文件名统统搜不到,不知为何。我把英文+汉字和分开英文汉字的情况都试过了,不行;但是别的有汉字的文件又可以搜到,难道是服务器的问题

网页在线页面,搜索功能目前发现有很多时候搜不到内容。
1.如果文件名是用数字命名,比如20260810,似乎搜索少于3位数的文件名是无法搜索到的
2.以下几个文件名统统搜不到,不知为何。我把英文+汉字和分开英文汉字的情况都试过了,不行;但是别的有汉字的文件又可以搜到,难道是服务器的问题

您好,这种情况与 Seafile 搜索底层(Elasticsearch)的默认分词配置有关。
为什么少于3位数(字符)的文件名无法搜索
Seafile 在构建文件名的搜索索引时,默认使用了 ngram 分词器,并且在底层配置中强制将最小分词长度(min_gram)设置为了 3。这意味着:当您的搜索词少于3个字符(比如只输入两个数字或两个字母)时,或者文件名本身长度就不够3位时,由于达不到分词器配置的最低长度,系统便无法提取出有效词条去匹配索引库,从而导致完全搜不到内容。
为什么中英文混合的文件名搜不到,但纯汉字又能搜到
对于您第二种情况,如果是新建的文件,系统需要一段时间后才能建立索引;对于中英文混合并且字符分别少于等于3情况,这也与搜索的分词处理机制紧密相关。Seafile 的搜索引擎并不是在做“精准全字匹配”,而是依赖一个分词的过程。在中英文混合的情况下,分词器常常会在中英文字母交界的边缘将字符串断开。结合上述 min_gram 为 3 的限制,切断后的中文或英文片段如果长度不足,可能就不会被正确建立索引或匹配上。而别的纯汉字的文件名只要连续字符较长,通常能被切分出完整且符合规则的词条,所以能够被正常搜到。
不建议您手动修改min_gram的参数,可能会引起其他的问题。