Solr - How do I construct a query that requires a NOT NULL Location field

geospatial, solr, solr-query-syntax

Solution

The canonical way is this:

fieldName:[* TO *]

Using a `''` on the left side as Paige Cook suggested will probably work too but I don't trust it as much as I do the above. And since this is to a Location field, you will probably have to do this against one of the two underlying actual fields versus this logical composite field. They start with `fieldName` and end with some sort of numeric suffix; look in the Schema Browser to see what the actual name is.

An important thing to be aware of here is that a query like this is expensive for Solr to do as it much do a full index scan on this field. If you have many distinct location field values (thousands on up?), then this is a big deal. If you do this in a filter query, then it will be cached and it's perhaps moot. If you want this query to run fast, then at index time you should index a boolean field to indicate if there is a value in this field or not.

Problem

I have a Solr index with a set of coordinates stored as a `Location` type; I would like to query for documents where this field has a non-null value. What is the query syntax to perform the NOT NULL check on a Location field?

Original source