You could also think about making a filter, probably when you open your searcher. You can use TermDocs/TermEnum to find all of the documents that *do* have entries for your field, assemble those into a filter, then invert that filter. Keep the filter around and use it whenever you need to. Perhaps CachingWrapperFilter would help here (although I've never used the latter).
Another possibility is to index a field only for those documents that don't have any value for MY_FIELD_NAME. So when indexing a doc, you have something like if (has MY_FIELD_NAME) { doc.add("MY_FIELD_NAME", <real value>); } else { doc.add("NO_MY_FIELD_NAME", "no"); } Now finding docs without your field really is just searching on NO_MY_FIELD_NAME:no Your index would be very slightly bigger in this instance.... FWIW Erick On Tue, Mar 11, 2008 at 10:16 AM, thogau <[EMAIL PROTECTED]> wrote: > > Hi, > > > I browsed the forum searching for a way to make a query that retrieves > document that do not have any value for a given field (say MY_FIELD_NAME). > > > I read several posts advising to use this syntax : -MY_FIELD_NAME:[* TO *] > However, I am not able to have it working... > > > I have 2 documents, the first one has a value for the field MY_FIELD_NAME > (In Luke, I can see the value) and the second one has no value for it (In > Luke, I can see <not available>) > > > I would expect the query MY_FIELD_NAME:[* TO *] to retrieve the document > which has a value for the field MY_FIELD_NAME but it doesn't (Nevertheless > MY_FIELD_NAME:[a* TO z*] retrieves it) > > > Also, I would expect the query -MY_FIELD_NAME:[* TO *] to retrieve the > document which has a NO value for the field MY_FIELD_NAME but it doesn't > either... > > > I guess I am missing something obvious but I am stuck... Anybody can help > to > understand what I am doing wrong? > > -- > View this message in context: > http://www.nabble.com/Searching-for-null-%28empty%29-fields%2C-how-to-use--field%3A-*-TO-*--tp15976538p15976538.html > Sent from the Lucene - Java Users mailing list archive at Nabble.com. >