首页 > 代码库 > JSON方式提交文档时SOLR报:AtomicUpdateDocumentMerger Unknown operation for the an atomic update, operation ignored

JSON方式提交文档时SOLR报:AtomicUpdateDocumentMerger Unknown operation for the an atomic update, operation ignored

文档是数组转成的json

原数组:

array(
  0 =>3,
  1 =>3,
  2 =>4,
  3 =>5,
  4 =>5,
  5 =>6
)

用array_unique去掉数组中重复的元素后,插入时报错。

原因:

  array_unique去重之后,原数组的下标被保留了。数组为

array(
  0 =>3,
  2 =>4,
  3 =>5,
  5 =>6
)

在json_encode数组时,会把下标不连续的数组解析成json字符串例如{"0":"3","2":"4","3":"5","5":6}。期望的是{["3","4","5","6"]}。造成这个报错的原因是下标不连续。需重组一下索引,因此在array_unique之后,再执行array_values,将数组的下标重排列。这样,在向solr的update handler 提交时就不会被认为是在做原子更新了。

JSON方式提交文档时SOLR报:AtomicUpdateDocumentMerger Unknown operation for the an atomic update, operation ignored