¿Cómo selecciono/elimino todos los documentos de Solr usando la noción booleana NOT?Booleano NO en la consulta solr
es decir, ¿cómo elimino todos los documentos de Solr cuya identificación no comienza con A59?
¿Cómo selecciono/elimino todos los documentos de Solr usando la noción booleana NOT?Booleano NO en la consulta solr
es decir, ¿cómo elimino todos los documentos de Solr cuya identificación no comienza con A59?
Use '-' para indicar NO.
Por ejemplo, para consultar los documentos con el ID que no empiezan con A59, la consulta sería: -id:A59*
, es decir: /solr/select/?q=-id:A59*
Para eliminar mediante consulta, publicar la consulta en un mensaje de borrado al controlador de actualización, como se especificado here.
EDIT: NO (en mayúsculas) también se puede utilizar como operador
no creo que eliminar una negativa por consulta funciona. Ver este ticket de Jira: https://issues.apache.org/jira/browse/SOLR-381
Dicen que hay una solución al prefijo en un:, pero no tengo suerte con eso.
Esto no funciona (lo mismo con el uso de NO) java-jar -Ddata = args /opt/solr/example/exampledocs/post.jar "-userid: *" java-jar/opt/Solr/example /exampledocs/post.jar * .xml
Adición en un: da un error de sintaxis (la misma con el uso de NO) java -Ddata = args-jar /opt/solr/example/exampledocs/post.jar ": - ID de usuario: *" java-jar /opt/solr/example/exampledocs/post.jar * .xml
SimplePostTool: versión 1.4 SimplePostTool: envíos args a http://localhost:8983/solr/update .. SimplePostTool: FATAL: Solr devuelve un error # 400 Error al analizar Lucene consulta SimplePostTool: versión 1.4 funciona
exclamación por un no tan bien, así que:
/solr/select/?q=!id:A59*
debería funcionar en el caso anterior.
antes de eliminar, asegúrese de que los identificadores a los que hace referencia son de cadena y de ninguna manera estarían formados por dos términos combinados. La forma en que lo haría es leer los datos de solr de un script y hacer un singular delete o en lotes, ya que proporciona un mejor control y validaciones sobre cada ids, lo que reduce el riesgo de borrado incorrecto 1 read the data de Solr a partir de una secuencia de comandos con /Solr/select/q = id: A59 *
2 verificar y validar los ID
3 borrarlos uno por uno o en un grupo de 10 ids a la vez
Saludos
R ajat
Como Mauricio declaró:
Utilice el símbolo - para indicar lo que desea excluir de la consulta. Las siguientes dos consultas eliminarán todos los documentos, excepto los que comienzan con A59.
GET http://<url>/solr/<core>/update?stream.body=<delete><query>-id:A59*</query></delete>
GET http://<url>/solr/<core>/update?stream.body=<commit/>
La primera línea realiza la operación de eliminación. La segunda línea hace la confirmación.
El uso del símbolo - en el frente de los archivos implica que excluye ese valor particular. Dará resultado como NO Igual
La siguiente es una cadena de consulta de url de muestra donde. He guardado "& fq = -HQ_City_Code: MEL",
Se omitirá todo el resultado que está teniendo HQ_City_Code valor MEL.
http://localhost:8983/solr/HQ_SOLR_Hotels/select?q=*:*&fq=HQ_National_Code:TH&fq=HQ_TYPE:hotel_EN&fq=HQ_Country_Code:AU&**fq=-HQ_City_Code:MEL**&wt=json&indent=true
Esta respuesta no funcionó donde, como la anterior, no estoy seguro, pero creo que '!' Podría tener una semántica ligeramente diferente – Sammaye