solr geospatial solr-query-syntax

Solr: cómo construyo una consulta que requiere un campo de ubicación NO NULA



geospatial solr-query-syntax (4)

Intente esto q= !fieldname:NULL será equivalente a Fieldvalue NO es NULL.

Preguntado por STW Tengo un índice de Solr con un conjunto de coordenadas almacenadas como un tipo de ubicación; Me gustaría consultar documentos en los que este campo tenga un valor no nulo.

¿Cuál es la sintaxis de la consulta para realizar la verificación NOT NULL en un campo de ubicación?

Tengo un índice de Solr con un conjunto de coordenadas almacenadas como un tipo de Location ; Me gustaría consultar documentos en los que este campo tenga un valor no nulo.

¿Cuál es la sintaxis de la consulta para realizar la verificación NOT NULL en un campo de ubicación?


La forma canónica es esta:

fieldName:[* TO *]

Usar un '''' en el lado izquierdo como Paige Cook sugirió también funcionará, pero no confío tanto como lo hago anteriormente. Y dado que se trata de un campo de Ubicación, probablemente tendrá que hacer esto contra uno de los dos campos reales subyacentes en comparación con este campo compuesto lógico. Comienzan con fieldName y terminan con algún tipo de sufijo numérico; busque en el navegador de esquemas para ver cuál es el nombre real.

Una cosa importante a tener en cuenta aquí es que una consulta como esta es costosa para Solr, ya que realiza una exploración de índice completa en este campo. Si tiene muchos valores de campo de ubicación distintos (¿miles en adelante?), Entonces esto es un gran problema. Si haces esto en una consulta de filtro, entonces se almacenará en caché y quizás sea discutible. Si desea que esta consulta se ejecute rápidamente, en el momento del índice debe indexar un campo booleano para indicar si hay un valor en este campo o no.


Para un campo de ubicación (solr.LatLonType), use la siguiente consulta de filtro: -fieldName:[-90,-180 TO 90,180] (las coordenadas fuera de este rango aún no son válidas)


Puede agregar esto a su consulta nombre de campo fieldname:['''' TO *] . Esto será el equivalente de un cheque NOT NULL.

Obtuve esto de la publicación - Solr - Field Not Null Searches