首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Lucene on Maven - java.lang.IllegalArgumentException UTF8编码长度超过最大长度32766错误

Lucene是一个开源的全文搜索引擎库,它提供了强大的文本搜索和索引功能。Maven是一个用于构建和管理Java项目的工具。java.lang.IllegalArgumentException UTF8编码长度超过最大长度32766错误是指在使用Lucene on Maven时,出现了UTF8编码长度超过最大长度32766的错误。

UTF-8是一种可变长度的字符编码方式,用于表示Unicode字符集中的字符。它可以表示世界上几乎所有的字符,包括各种语言的文字、符号和表情等。UTF-8编码中,每个字符的长度可以是1到4个字节。

在Lucene on Maven中,当使用UTF-8编码的文本进行索引或搜索时,如果文本的长度超过了32766个字节(即UTF8编码长度超过最大长度32766),就会抛出java.lang.IllegalArgumentException异常。

解决这个问题的方法有以下几种:

  1. 检查文本长度:首先,检查你要索引或搜索的文本的长度是否超过了32766个字节。如果是,可以考虑缩短文本长度或者采取其他方式处理长文本。
  2. 分割文本:如果文本长度超过了32766个字节,可以将文本分割成多个较短的部分进行索引和搜索。这样可以避免超过最大长度的问题。
  3. 使用其他编码方式:如果你不一定需要使用UTF-8编码,可以尝试使用其他编码方式,如UTF-16或GBK等。不同的编码方式对字符长度的限制可能不同,选择适合你需求的编码方式。
  4. 更新Lucene版本:如果你使用的是较旧的Lucene版本,可以尝试升级到最新版本。新版本的Lucene可能已经修复了这个问题或者提供了更好的处理方式。

腾讯云提供了多个与全文搜索相关的产品和服务,例如腾讯云搜索(Cloud Search)和腾讯云文智(Tencent Cloud Natural Language Processing)。你可以通过以下链接了解更多关于这些产品的信息:

  • 腾讯云搜索:https://cloud.tencent.com/product/cs
  • 腾讯云文智:https://cloud.tencent.com/product/nlp

请注意,以上答案仅供参考,具体解决方法可能需要根据实际情况进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL VARCHAR(M)最多能存储多少数据

如果一个字段超过了65535个字节,可以选择使用TEXT或者BLOB类型。...VARCHAR(M)最多能存储多少真实数据(也就是M的最大取值)跟字段采用的字符集有关,以下就拿字符集utf8、gbk、utf8mb4说明一下: utf8字符集:MySQL中的utf8字符集跟标准的utf...最多能存储多少真实数据的公式为(65535-2)÷2=32766,所以M的最大32766。 utf8mb4字符集:utf8mb4字符集中一个字符最多占用4个字节。...如果字段设置的长度超过了实际能存储的长度,MySQL就是报下面这个错误 ERROR 1118 (42000): Row size too large....You have to change some columns to TEXT or BLOBs 最后总结一下,VARCHAR能最多能存储多少真实数据跟字符编码集有关,最多能存储多少个字符是个上限值,

83920

数据库中varchar类型 最大长度是多少?

无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同。...255时需要2个字节),因此最大长度不能超过65535。...b) 编码长度限制 字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766; 字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。...You have to change some columns to TEXT or BLOBs 执行有错误 [MySQL]如何计算varchar最大长度 这里有一道我YY出来的关于MySQL的题:...你再来算一算varchar长度 最大为: (65535-2) /2 = 32766 ? 还是不对! 其实每一行的总长度是有限制的,即最大为65535.

6.5K20

MySQL之char、varchar类型简析

65532 个字符 gbk模式下是0~32767,一个字符占两个字节,最多能存 32766 个字符 若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning。...可能这里有人要问了,为什么最大值是32767,而最多只能放32766个字符呢? 举两个例说明一下实际长度的计算。...减1的原因是实际行存储从第二个字节开始’; 减2的原因是varchar头部的2个字节表示长度; 除2的原因是字符编码是gbk。...*3)/3=21812 减1和减2与上例相同; 减4的原因是int类型的c占4个字节; 减30*3的原因是char(30)占用90个字节,编码utf8。...3.MySQL的字段长度模式 字段长度的模式分为严格模式和不严格模式,在严格模式下,如果我们想给一个字段中插入一个大于规定长度的字符串,MySQL会给出错误提示,例如我们的表: ?

2.7K30

Java进阶笔记——MySql中的varchar类型

汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 ;varchar(20)在Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同,具体有以下规则: a)...存储限制 varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度长度超过255时需要2个字节),因此最大长度不能超过65535。...b) 编码长度限制 字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766; 字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。...CHAR和VARCHAR最大的不同就是一个是固定长度,一个是可变长度。由于是可变长度,因此实际存储的时候是实际字符串再加上一个记录字符串长度的字节(如果超过255则需要两个字节)。...如果裁剪非空格字符,则会造成错误(而不是警告)并通过使用严格SQL模式禁用值的插入。 3.

2.2K30

ElasticSearch+Solr几个case笔记

(一) 最大能索引字符串的长度 关于能索引最大的字符串长度,其实在Elasticsearch和Solr中都是由底层的Lucene决定的 (1)不分词+索引的字符串最大长度32766字节 (2)分词+索引一般不会出现长度越界问题...(3)不索引的字符串虽然没有长度最大限制,但是不建议使用搜索引擎存储大量文本 (二)设置超出一定长度的字段,不索引 其实这个功能,也是由底层Lucene提供的,关于它的应用场景举个例子,大部分情况下,...(1)在ES中 "message": { "ignore_above": 20, //超过20个字节,不索引该字段,注意对其他字段没有影响 "index": "not_analyzed...class="solr.TextField"> //超过...就是因为lucene默认会把空格当做多个关键词分界线,这样以来查询就转化成了: content:Syntaxdefault_field:err* 所以就查不到数据了,如何解决?

96940

mysql基础

并且 gmtModified 根据当前时间更新 char和varchar 对于char来说,长度是固定的,最大为255字符,最大长度=255*每个字符占用的字节数,由编码来决定的。...varchar(length)这个length实际上是字符数,最大长度也是根据编码来决定的,比如utf8一个字符占三个字节,那么varchar的最大长度=65535/3约为21485个字符。...mysql有个限制规则 限制规则 存储限制:varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度长度超过255时需要2个字节),因此最大长度不能超过65535 编码长度限制...: 字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766; 字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845 若定义的时候超过上述限制,则varchar字段会被强行转为...MySQL要求一个行的定义长度不能超过65535。

31320

DBbrain诊断日 | 这个匪夷所思的数据库故障,你会处理吗?

VARCHAR(N) ①存储限制 • varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1~2个字节表示实际长度长度超过255时需要2个字节),最大内容长度不能超过65533。...②编码影响 • gbk,每个字符最多占2个字节,最大长度不能超过32766;     • utf8,每个字符最多占3个字节,最大长度不能超过21844。 2....②VARCHAR(N) •  VARCHAR列长度为可变长字符串,N取值可以为0~65535之间,最大有效长度最大行大小和使用的字符集确定。...③ VARCHAR需要定义大小,有65535字节的最大限制,BLOB、TEXT则不需要(超过列类型最大长度的值赋给BLOB或TEXT列,值被截断)。...问题就在与第一个测试的汉字使用的是utf8编码,而第这个测试的汉字是gbk编码,所以汉字在gbk编码转换成latin1时,占用了2个字符,而utf8编码的汉字在转换成latin1时占用了3个字符。

1.4K10

【MySQL】数据库的数据类型

三、字符串类型 1. char 语法:char(L): 固定长度字符串,L 是可以存储的长度,单位为字符,最大长度值可以为 255....2. varchar 语法:varchar(L): 可变长度字符串,L 表示字符长度最大长度 65535 个字节。...: varchar 长度可以指定为 0 到 65535 之间的值,但是有 1 - 3 个字节用于记录数据大小,所以说有效字节数是 65532; 当我们的表的编码utf8 时,varchar(n) 的参数...n 最大值是 65532/3=21844 (因为 utf 中,一个字符占用3个字节),如果编码是 gbk,varchar(n) 的参数 n 最大是 65532/2=32766(因为 gbk 中,一个字符占用...2字节); 我们可以验证一下,我们可以创建一个表,里面包含 varchar 类型并设置大小为 21844,因为字符集默认为 utf8,如下: 上图验证了 utf8 确实是不能超过 21844.

12310

【MYSQL】数据类型

如果我们四舍五入后的数字位数超过规定的总长度,那么就会插入失败。...是可以存储的长度,单位为字符,最大长度值可以为255 char在mysql中长度指的是字符的长度,不论是字母、数字还是中文。...2.varchar 语法: varchar(L): 可变长度字符串,L表示字符长度最大长度65535个字节 varchar可变的地方在于,我们设定的字符长度最大限制长度,但是实际开辟的空间是随着我们插入的字符不断变化的...(用于记录的字节大小由我们插入的字符串长度来决定) 当我们的表的编码utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占用3个字节],如果编码是gbk,...varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符占用2字节)。

20630

MYSQL数据库-数据类型

,L是可以存储的长度,单位为字符,最大长度值可以为255(不是储存内容的字节大小) 示例: 说明: char(2) 表示可以存放两个字符,可以是字母或汉字,但是不能超过2个, 最多只能是255...2、varchar类型 语法: varchar(L): 可变长度字符串,L表示字符长度最大长度65535个字节 示例: 说明: 关于varchar(len),len到底是多大,这个len值和表的编码密切相关...varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是65532 当我们的表的编码utf8时,varchar(n)的参数n最大值是...65532/3=21844[因为utf中,一个字符占用3个字节] 如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符占用2字节) 3、char...:名字,地址,但是你要保证最长的能存的进去 定长的磁盘空间比较浪费,但是效率高;变长的磁盘空间比较节省,但是效率低 定长的意义是,直接开辟好对应的空间;变长的意义是,在不超过自定义范围的情况下

2.7K10

MySQL建表过程中的一些注意事项

02 MySQL之表大小 今天在创建一个业务方提供的表时,没有仔细看,当时手头还有别的事情,审核的时候出了点岔子,结果MySQL报了一个错误: mysql> CREATE TABLE `top_org...,错误是由于varchar类型的字段设置的值太长导致的,也就是db_properties字段的1048576导致的,而且上面给了提示,最大的max值是21845,这里首先解释下为什么最大值是21845,...因为MySQL在创建表的时候有一条规定,MySQL要求一个行的定义长度不能超过65535。...再来具体看当前这个SQL,这个表在创建的时候表的字符集是utf8类型的,具体的计算方法如下: 字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过65535/2=32766; 字符类型若为utf8...,每个字符最多占3个字节,最大长度不能超过65535/3=21845。

1.6K20

MySQL数据类型

六.字符串类型 char类型:定长字符串 char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255 gbk编码,一个汉字占两个字节 utf8编码,一个汉字占三个字节...此时默认使用utf8编码,一个汉字就占用三个字节,但此时仍然可以插入两个汉字,这就一位着对于mysql,即便是汉字,一个汉字也仍代表一个符号。...varchar类型:变长字符串 varchar(L): 可变长度字符串,L表示字符长度最大长度65535个字节 即便最大长度是65535个字节,但是多少个字符还是需要看编码的。...当我们的表的编码utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占用3个字节],如果编码是gbk,varchar(n)的参数n最大是65532/2=32766...变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少。

14110
领券