:   fq={!field f=category}<insert value, URL encoded of course, here>

There are subtle nuanced cases where "field" won't work properly, which is 
why i usually recommend "raw", but there are also subtle nuanced cases 
where raw won't work either (although in my opinion those cases are much 
less likely in typical faceting)

this is why the "term" parser was added.

I cover this fairly in depth in the notes attached to the relevant slides 
here...

http://people.apache.org/~hossman/apachecon2010/facets/

--
raw QParser
  * Default Query Parser does special things with whitespace and punctuation
  * Problematic when "filtering" on Facet Field Constraints that contain 
whitespace or punctuation
  * Use the raw parser to filter on an exact Term

fq = {!raw f=category}Books & Magazines

This is utilizing Solr's LocalParams Syntax to embed metadata directly 
into the fq param value. {!raw} is the short form of {!type=raw}

You could also alter the default parser, but it's unlikely you would want 
all of your query params parsed with the raw parser by default.

One potential pitfall with using the raw QParser is if you facet on 
Numeric fields that utilize an encoded representation. (ie: the "TrieFoo" 
or "SortableFoo" Field Types. The RawQParser expects truly "Raw" Terms, 
but for encoded numeric types the term you get in the facet response is 
the "external" value, and RawQParser won't convert that to the internal 
value. The field QParser may be a better choice in those situations (it's 
the one Yonik recommends) -- However if you have a Query Analyzer that is 
not idempotent (a situation that's easy to get in w/o realizing it) it's 
very possible to get incorrect results. The term QParser discussed later 
will be the best of both worlds.
--

...

--
term QParser

 * All of the advantages of the raw QParser
 * Will also work on encoded numeric fields

fq = {!term f=category}Books & Magazines fq = {!term f=weight}1.56

SOLR-2113 Tracks this functionality. It has already been committed to the 
trunk, so it should certainly be included in Solr 4.0, and it will likely 
be back ported and included in Solr 3.1 as well.
--


-Hoss

Reply via email to