One possibility to consider - if you really need documents with specifically 
empty or non-defined values (if that's not an oxymoron :)), and you have 
control over the values you send into the indexing, you could set a special 
value that means 'no value'. We've done that in a similar vein, using something 
like '@@EMPTY@@' for a given field, meaning that the original document didn't 
actually have a value for that field.  I.E. it is something very unlikely to be 
a 'real' value - and then we can easily select on documents by querying for the 
field:@@EMPTY@@ instead of the negated form of the select...  However, we 
haven't considered things like what it does to index size.  It's relatively 
rare for us (that there not be a value), so our 'gut feel' is that it's not 
impacting the indexes very much size-wise or performance-wise.

Bob Sandiford | Lead Software Engineer | SirsiDynix
P: 800.288.8020 X6943 | bob.sandif...@sirsidynix.com
www.sirsidynix.com 

> -----Original Message-----
> From: Viswa S [mailto:svis...@hotmail.com]
> Sent: Saturday, November 20, 2010 5:38 PM
> To: solr-user@lucene.apache.org
> Subject: RE: Empty value/string matching
> 
> 
> Erick,
> Thanks for the quick response. The output i showed is on a test
> instance i created to simulate this issue. I intentionally tried to
> create documents with no values by creating xml nodes with "<field
> name="fieldName"></field>", but having values in the other fields in a
> document.
> Are you saying that there is no way have a field with no value?, with
> text fields they seem to make sense than for string?.
> You are right on fieldName:[* TO *] results, which basically returned
> all the documents which included the couple of documents in question.
> -Viswa
> > Date: Sat, 20 Nov 2010 17:20:53 -0500
> > Subject: Re: Empty value/string matching
> > From: erickerick...@gmail.com
> > To: solr-user@lucene.apache.org
> >
> > I don't think that's correct. The documents wouldn't be showing
> > up in the facets if they had no value for the field. So I think
> you're
> > being mislead by the printout from the faceting. Perhaps you
> > have unprintable characters in there or some such. Certainly the
> > name:" " is actually a value, admittedly just a space. As for the
> > other, I suspect something similar.
> >
> > What results do you get back when you just search for
> > FieldName:[* TO *]? I'm betting you get all the docs back,
> > but I've been very wrong before.
> >
> > Best
> > Erick
> >
> > On Sat, Nov 20, 2010 at 5:02 PM, Viswa S <svis...@hotmail.com> wrote:
> >
> > >
> > > Yes I do have a couple of documents with no values and one with an
> empty
> > > string. Find below the output of a facet on the fieldName.
> > > ThanksViswa
> > >
> > >
> > > <int name="">2</int><int name="CASTIGO.430">2</int><int
> > > name="GDOGPRODY.424">2</int><int name="QMAGIC.412">2</int><int
> name="
> > > ">1</int>
> > > > Date: Sat, 20 Nov 2010 15:29:06 -0500
> > > > Subject: Re: Empty value/string matching
> > > > From: erickerick...@gmail.com
> > > > To: solr-user@lucene.apache.org
> > > >
> > > > Are you absolutely sure your documents really don't have any
> values for
> > > > "FieldName"? Because your results are perfectly correct if every
> doc has
> > > a
> > > > value for "FieldName".
> > > >
> > > > Or are you saying there no such field as "FieldName"?
> > > >
> > > > Best
> > > > Erick
> > > >
> > > > On Sat, Nov 20, 2010 at 3:12 PM, Viswa S <svis...@hotmail.com>
> wrote:
> > > >
> > > > >
> > > > > Folks,Am trying to query documents which have no values
> present, I have
> > > > > used the following constructs and it doesn't seem to work on
> the solr
> > > dev
> > > > > tip (as of 09/22) or the 1.4 builds.1. (*:* AND -FieldName[* TO
> *]) -
> > > > > returns no documents, parsedquery was "+MatchAllDocsQuery(*:*)
> > > -FieldName:[*
> > > > > TO *]"2. -FieldName:[* TO *] -  returns no documents,
> parsedquery was
> > > > > "-FieldName:[* TO *]"3. FieldName:"" - returns no documents,
> > > parsedquery was
> > > > > empty (<str name="parsedquery"/>)The field is type string,
> using the
> > > > > LuceneQParser, I have also tried to see if "FieldName:[* TO *]"
> if the
> > > > > documents with no terms are ignored and didn't seem to be the
> case, the
> > > > > result set was everything.Any help would be appreciated.-Viswa
> > > > >
> > >
> > >
> 

Reply via email to