Thanks Chris, this is useful, we can you the query format you suggest,

Karen

On Tuesday 15 January 2008 01:13:14 Chris Hostetter wrote:
> Several things in this thread should be clarified (note: order of
> quotations munged for clarity)...
>
> : I had read this page.  But I'm not using the "NOT" operator,  I'm using
> : the "-" operator.  I'm assuming there is a subtle difference between them
> : in that NOT qualifies something else, hence needs 2 terms.  Isn't the "-"
> : operator supposed to be a complement to the "+" operator, ie. excludes
> : something rather than requiring it ?
>
> "The NOT operator" and "the - operator" are in fact the same thing ... the
> duplicate syntax comes from Lucene trying to appease people that
> want boolean style operator synta (AND/OR/NOT) even though the query
> parser is not a boolean syntax.
>
> : > Have you seen this page?
> : > http://lucene.apache.org/java/docs/queryparsersyntax.html
> : >
> : > From that page:
> : > Note: The NOT operator cannot be used with just one term. For example,
> : > the following search will return no results:
> : > NOT "jakarta apache"
>
> In Solr, the query parser can in fact support purely negative queries, by
> internally transforming the query, this is noted on the Solr query syntax
> wiki...
>
> http://wiki.apache.org/solr/SolrQuerySyntax
>
> : > > field_name:(-null)
>
> "null" is not a special keyword, if you look at the debugging output when
> doing that query you'll see that it is the same as:   -field_name:null
> ... which is a search for all docs containing the string "null" in the
> field "field_name".
>
> : The *:* (star colon star) means "all records". The trick is to use (*:*
> : AND -field:[* TO *]). It's silly, but there it is.
>
> as i mentioned, you can do pure wildcard queries now, so a simple search
> for -field_name:[* TO *] will find all docs that have no indexed values
> for that field at all.
>
> : A performance note: we switched from empty fields to fields with a
> : standard 'empty' value. This way we don't have to do a range check to
> : find records with empty fields.
>
> Your milage may vary depending on how many docs you have with "no value"
> ... this also issn't practical when dealing with numeric, boolean, or date
> based fields.  (and depending on how much churn there is in your index,
> the filterCache can probably make the difference negliable on average
> anyway).
>
>
>
>
> -Hoss


Reply via email to