Tengo un índice de solr grande y he notado que algunos campos no se actualizan correctamente (el índice es dinámico).
Esto ha dado como resultado que algunos campos tengan un campo "id" vacío.
Probé estas consultas, pero no funcionaron:
id:''
id:NULL
id:null
id:""
id:
id:['' TO *]
¿Hay alguna forma de consultar campos vacíos?
Gracias
?q=-id:*
obtieneCannot parse '-q:*': '*' or '?' not allowed as first character in WildcardQuery
?q=-id:*
parece funcionar como se esperaba. Quizás el error de análisis esté relacionado con este problema .Lucene Specification Version: 3.2.0
que estaba usando. Me alegro de que hayan agregado la sintaxis en Solr 4.5.1.¡Una advertencia! Si desea redactar esto a través de OR o Y, no puede usarlo en este formulario:
pero debes usar
Esta forma es perfectamente componible. Aparentemente, SOLR expandirá el primer formulario al segundo, pero solo cuando sea un nodo superior. ¡Espero que esto te ahorre algo de tiempo!
fuente
Según SolrQuerySyntax , puede usar
q=-id:[* TO *]
.fuente
Si tiene un índice grande, debe usar un valor predeterminado
y luego consulte este valor predeterminado. Esto es mucho más eficiente que q = -id: ["" TO *]
fuente
También puedes usarlo así.
fuente
Si está utilizando SolrSharp, no admite consultas negativas.
Necesita cambiar QueryParameter.cs (crear un nuevo parámetro)
Y en la clase QueryParameterCollection.cs, la anulación de ToString (), busca si el parámetro Negative es verdadero
Cuando llama al creador del parámetro, si es un valor negativo. Simple cambio de propiedad
fuente
puede hacerlo con la consulta de filtro q = *: * & fq = -id: *
fuente