首页 > 编程知识 正文

varchar1000能存多少汉字,字符串索引和数字索引

时间:2023-05-04 01:55:32 阅读:127776 作者:820

最近在Lucene版本6.6中添加的索引数据的字符数超过32766个时发生错误,但在Lucene版本4.6中由于以下原因未发生此问题:

概述:

添加 索引数据时,对于分词字段,分词后的Term与BYTE_BLOCK_SIZE进行比较,如果该Term超过BYTE_BLOCK_SIZE,则为超长长度4.6对于不分词字段,请将整个字段的值作为Term和BYTE_BLOCK_SIZE进行比较。

详述如下:

(1)分词字段) )设置的最大字符数300万) ) )。

4.6和6.6中文字段类型没有问题,因为整个字符串被拆分为相对较小的Term。 如果添加一系列字母字符(如字段值为“abcmasdasdlasdasdasds .”),则字符数超过32766个时会出现问题,因为分词器不会拆分字符串。 在4.6版中,为了兼容性,没有捕捉到这一部分的异常。 源代码包含以下注释:

//Notenoughroomincurrentblock

//Justskipthisterm,toremainasrobustas

//possibleduringindexing。

6.6版捕捉到了这一部分的异常。 所以报告错误。 在实用场合,这种连续的英语字母不会出现,这个问题可以忽略。

)2)不分词的字段()设定的最多字符数30万) ) ) ) ) )。

对于4.6和6.6的中文或英语字段类型,如果字符数超过32766,则会出现问题,因为整个字符串不会拆分为相对较小的Term。 同样跳过了4.6异常,6.6抓住了这个问题。 因此,在4.6版中没有发现这个问题。

解决方案:非分隔字段的最大字符数设置为32760。 如果字符数超过此值,则返回错误代码。

转载于:https://www.cn blogs.com/je thu/p/8488977.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。