【问题标题】:Limit number of characters in the stored field限制存储字段中的字符数
【发布时间】:2015-01-22 08:34:45
【问题描述】:

我有一个包含 1.95 亿字符的文档。它可以被索引,但是当它向用户显示时,我不需要完全显示它,只需要说 100 万个字符左右,更不用说 Solr 也会崩溃。

是否可以限制存储/显示的字符数,但索引全部。就像在复制字段中一样:

<copyField source="cat" dest="text" maxChars="30000" />

【问题讨论】:

  • 也许你想使用substring函数??
  • 你能说得更具体一点吗?子字符串,当我得到结果时?这是毫无意义的,因为 Solr 无论如何都会中断 1.94 亿个字符,即使没有,我也必须通过网络传输它
  • @JordiCastilla,你明白我们在谈论 Solr 吗?
  • 据我了解,您的问题是您的文档非常大,您想限制存储但完全索引它,对吗?
  • 您可以在架构中放置两个字段。完整文档的第一个是stored=false 和indexed=true。第二个将存储=true 和 indexed=false 从相应的 copyField 条目与 maxChars=...

标签: java solr indexing lucene


【解决方案1】:

您几乎提供了自己的答案。

  1. 将 copyField 与 maxChars 设置一起使用
  2. 将原始字段设置为 stored=false, indexed=true
  3. 将复制的字段设置为 stored=true, indexed=false
  4. 搜索原始字段,但返回复制的字段

但是,您可能会考虑在 Solr 中根本没有该内容,而是在 Solr 之外拥有它。至少如果您在 Solr 中有多个类似的文档。

【讨论】:

  • 高亮怎么样?
  • 至少使用一个荧光笔,您可以确定要突出显示的字段。实际上,更多的工作是专门突出匹配的关键字匹配的字段。因此,它可能对您有利。
  • 嗨,我注意到如果该字段未编入索引,则不能使用 termsvector = true。这不会对突出显示效果产生影响吗?
猜你喜欢
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-27
相关资源
最近更新 更多