如何使用 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 存储大文本的解决方案吗?
此致,
奥勒良
中所述
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
因此,它曾给人一种错觉,认为此文本已被编入索引(但实际上并未编入索引),现在已被适当的异常所取代。你没有注意到这一点就证明了这一点。
索引如此大量的数据是不现实的,您可能需要重新考虑您的数据模型以适应上述边界。
我尝试使用 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 存储大文本的解决方案吗?
此致, 奥勒良
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
因此,它曾给人一种错觉,认为此文本已被编入索引(但实际上并未编入索引),现在已被适当的异常所取代。你没有注意到这一点就证明了这一点。
索引如此大量的数据是不现实的,您可能需要重新考虑您的数据模型以适应上述边界。