如何使用 lucene 4.10.3 保存最大长度描述?

how save max length description using lucene 4.10.3?

我尝试使用 lucene 4.10.3 存储大型描述字段。

如果我使用 StringField 或 TextField {

doc.add(new StringField("description", rs.getString("description"), Store.YES));
doc.add(new TextField("description", rs.getString("description"), Store.YES));

} 我会收到以下错误 { java.lang.IllegalArgumentException:文档在field="description"中至少包含一个巨大的term(其UTF8编码大于最大长度32766),所有这些都被跳过。 }

但是如果我使用 {

doc.add(new Field("description", rs.getString("description"), Store.YES, Index.ANALYZED));

} 我不会收到任何错误,但 lucene 字段似乎已在 lucene 4.10.3

中弃用

总而言之,我能指出一个关于如何使用 lucene 4.10.3 存储大文本的解决方案吗?

此致, 奥勒良

如相关Lucene JIRA report

中所述

when a term is greater then 2^15 bytes it is silently ignored at indexing time – a message is logged in to infoStream if enabled, but no error is thrown

因此,它曾给人一种错觉,认为此文本已被编入索引(但实际上并未编入索引),现在已被适当的异常所取代。你没有注意到这一点就证明了这一点。

索引如此大量的数据是不现实的,您可能需要重新考虑您的数据模型以适应上述边界。