Solr não sobrescreve - entradas duplicadas exclusivas

Estou com um problema com o Solr 5.3.1. Meu esquema é bastante simples. Eu tenho uma uniqueKey que é o "id" como string. indexados, armazenados e necessários, sem valores múltiplos.

Eu adiciono documentos primeiro com um "content_type: document_unfinished" e depoissubstituir o mesmo documento, com o mesmo ID, mas outro content_type: document. O documento é então duas vezes no índice. Novamente, a únicaKey única é "id", como string. O id vem originalmente de um int primário do índice mysql.

Também parece que isso acontece não apenas uma vez:

http://lucene.472066.n3.nabble.com/uniqueKey-not-enforced-td4015086.html

http://lucene.472066.n3.nabble.com/Duplicate-Unique-Key-td4129651.html

No meu caso, nem todos os documentos no índice são duplicados, apenas alguns. Eu estava assumindo - inicialmente - que eles estavam sendo substituídos no commit quando a mesma chave única existe no índice. O que não parece funcionar como eu esperava. Não quero simplesmente atualizar alguns campos do documento, quero substituí-lo completamente, por todos os filhos.

Algumas estatísticas: cerca de 350 mil documentos no índice. Principalmente com childDocuments. Os documentos são distinguidos por um campo "content_type". Eu usei o SolrJ para importá-los dessa maneira:

HttpSolrServer server = new HttpSolrServer(url);
server.add(a Collection<SolrInputDocument>);
server.commit();

Estou sempre adicionando um documento inteiro com todas as crianças novamente. Não é nada demais demais. Acabo com documentos duplicados para a mesma chave única. Não há injeções laterais. Eu corro apenas o Solr com o Jetty integrado. Não abro o índice lucene em java "manualmente".

O que fiz então foi excluir + inserir novamente. Isso pareceu funcionar por um tempo, mas, em seguida, foi iniciado sob algumas condições, e esta mensagem de erro:

A consulta pai produz um documento que não corresponde ao filtro de pais

O documento em que isso acontece parece ser completamente aleatório, apenas uma coisa parece emergir: é um childDocument onde acontece. Eu não corro nada de especial, basicamente baixei o pacote solr do site e execute-o combin/solr start

Alguém tem alguma idéia?

EDIT 1

Acho que encontrei o problema, o que parece ser um bug? Para reproduzir o problema:

Eu baixei o Solr 5.3.1 para um Debian em um virtualBox e o iniciei combin/solr start. Adicionado um novo núcleo com o conjunto de configurações básicas. Nada mudou no conjunto de configurações básicas, apenas o copiou e adicionou o núcleo.

Isso leva a dois documentos com o mesmo ID no índice:

    SolrClient solrClient = new HttpSolrClient("http://192.168.56.102:8983/solr/test1");
    SolrInputDocument inputDocument = new SolrInputDocument();
    inputDocument.setField("id", "1");
    inputDocument.setField("content_type_s", "doc_unfinished");
    solrClient.add(inputDocument);
    solrClient.commit();
    solrClient.close();

    solrClient = new HttpSolrClient("http://192.168.56.102:8983/solr/test1");
    inputDocument = new SolrInputDocument();
    inputDocument.setField("id", "1");
    inputDocument.setField("content_type_s", "doc");
    SolrInputDocument childDocument = new SolrInputDocument();
    childDocument.setField("id","1-1");
    childDocument.setField("content_type_s", "subdoc");
    inputDocument.addChildDocument(childDocument);
    solrClient.add(inputDocument);
    solrClient.commit();
    solrClient.close();

Pesquisando com:

http://192.168.56.102:8983/solr/test1/select?q=% 3A& wt = json & indent = true

leva à seguinte saída:

{

  "responseHeader": {
    "status": 0,
    "QTime": 0,
    "params": {
      "q": "*:*",
      "indent": "true",
      "wt": "json",
      "_": "1450078098465"
    }
  },
  "response": {
    "numFound": 3,
    "start": 0,
    "docs": [
      {
        "id": "1",
        "content_type_s": "doc_unfinished",
        "_version_": 1520517084715417600
      },
      {
        "id": "1-1",
        "content_type_s": "subdoc"
      },
      {
        "id": "1",
        "content_type_s": "doc",
        "_version_": 1520517084838101000
      }
    ]
  }
}

O que estou fazendo errado?

questionAnswers(1)

yourAnswerToTheQuestion