【问题标题】:Reindexing Solr Data with different field type使用不同的字段类型重新索引 Solr 数据
【发布时间】:2019-07-09 00:21:35
【问题描述】:

我在重新索引 Solr 数据时遇到问题。

我已经索引了一些文档,在托管模式文件中指定了错误的字段类型。 现在,我不想使用错误的字段定义,而是使用:

<field name="documentDate" type="date" indexed="true" stored="true"/> 

为此,我有:

  • 删除了所有以前的错误索引文档;
  • 更新了托管模式
  • 重新加载核心

在这些步骤之后,我尝试重新索引文档,但是失败了;查看日志:

org.apache.solr.common.SolrException: Exception writing document id 2ecde3eb2b5964b2c44362f752f7b90d to the index; possible analysis error: cannot change DocValues type from NUMERIC to SORTED_SET for field "documentDate".

这怎么可能?我已经删除了所有存储字段 documentDate.. 的文档。我该如何解决这个问题?

【问题讨论】:

  • 删除文档后你的索引优化了吗?索引重写到磁盘后,删除的文档不会被删除
  • @MatsLindh,是的,我从文档部分删除了所有带有“type:documentType”的文档,然后从核心管理员那里优化了核心。 . 还有其他方法可以清除这个不需要的字段吗? (我无法重新创建核心,我必须在核心中保留其他文件)

标签: solr schema solrcloud reindex


【解决方案1】:

也许尝试删除核心中的数据文件夹。 您可以在不删除数据文件夹的情况下将新字段添加到架构中,但是当您修改字段时(这是我的经验),我必须删除数据文件夹并建立一个新的索引

【讨论】:

  • 最后我无法用正确的类型重新索引现有字段。因此,我决定删除现有的错误文档,并使用不同的字段类型和不同的字段名称重新索引所有这些文档,而不是创建新的核心。这样,现有的和正确的数据就不会被触及。我会接受你的回答,因为另一个可能的解决方案(不更改字段名称)是建立一个新的索引。
猜你喜欢
  • 2010-11-03
  • 1970-01-01
  • 1970-01-01
  • 2012-11-22
  • 1970-01-01
  • 2013-04-28
  • 2014-07-07
  • 1970-01-01
  • 2011-03-03
相关资源
最近更新 更多