2011-01-26 34 views

Respuesta

4

No puede. La solución sería obtener el documento, almacenarlo temporalmente en la memoria, eliminarlo, actualizar el campo requerido (eliminar, agregar) y luego volver a agregar el documento al índice.

3

Puede eliminar el documento indexado por su id. Si desea cambiar el esquema eliminando un campo, entonces sí, tendría que reindexar.

+0

+1 o simplemente evite devolver el campo en el formato de salida a través del parámetro fl;; – Karussell

1

Puede eliminar todo el índice utilizando el comando borrar y una consulta como esta:

java -Ddata=args -Dcommit=yes -jar post.jar "<delete><query>*:*</query></delete>" 

El uso de la fuerza argumento -Dcommit para actualizar el índice, así, tener cuidado de no borrar todos los documentos cuando no quieres.

+0

En la documentación de solr [enlace] (http://lucene.apache.org/solr/tutorial.html) explique cómo eliminar uno documentos, pero en las preguntas más frecuentes de Solr explica eliminar por consulta [link] (http://wiki.apache.org/solr/FAQ#How_can_I_delete_all_documents_from_my_index.3F) – josegil

7

Si está utilizando Solr 4, puede usar AtomicUpdate http://wiki.apache.org/solr/Atomic_Updates para eliminar un campo con mucha más facilidad. Por ejemplo:

curl http://localhost:8983/solr/update?commit=true -H 'Content-type:application/json' --data-binary '[{"id": "630911fa-711a-3944-b1d2-cda6857f9827", "field_to_be_removed": {"set": null}}]' 
+0

¿Cómo puedo eliminar cierto campo para todos los "id"? Por ej. esto elimina un cierto campo para id: 630911fa-711a-3944-b1d2-cda6857f9827. Pero quiero esto todos los id. – Uttam

5

se puede hacer esto si su resto de los campos se almacenan es decir stored="true " .as sigue estableciendo valor nulo.

<add> <doc>

<field name="employeeId">05991</field> // your unique key field 

    <field name="skills" update="set" null="true" /> //what ever field you want to delete 

</doc> </add>

fuente: https://wiki.apache.org/solr/UpdateXmlMessages

0

Puede eliminar w.r.t. valor indexado un campo en Solr pero no el campo.

Si realmente desea eliminar un campo específico durante la indexación, debe configurar el campo en el archivo schema.xml antes de indexar el documento.

Cuestiones relacionadas