On Jan 19, 2007, at 11:34 PM, Yonik Seeley wrote:

On 1/19/07, Erik Hatcher <[EMAIL PROTECTED]> wrote:
So, where are we with these things now?


The one delta for my use case is getting ones that start with a
certain prefix.  I'll look into adding this when I can.


The code for most of these things is easy... the hardest part is
coming up with interfaces flexible enough that you don't box yourself
in later and make things ugly.

For example, how does one specify a prefix constraint while faceting a field:

facet.field=myfield&f.myfield.terms=foo*

But what if you also wanted to facet a different way on the same field
in the same request?
When we came up with per-field params for highlighting, it worked well
because everything was field based.  It no longer really is.

One could use (abuse) the per-field-param capability to do something like:

facet.id=1
f.1.field=myfield
f.1.terms=foo*
facet.id=2
f.2.field=myfield
f.2.terns=bar*

I'm not impressed.  I'm leaning toward being practical (punting and
going with the first form for now... the upshot being that you can't
facet on the same field multiple ways.)

Thoughts?

The latter example is overengineering this a bit. My use case is simply to return terms that match a prefix within some given some constraints (q + fq), and for each of those terms also return the counts. Requesting more than one field for faceting isn't currently needed. We're talking about a text box wired to some JavaScript that returns the terms and counts back only for a single field.

I envisioned a specialized request handler that leverages what it can from the existing faceting infrastructure. Though with your first example, the standard handler would be sufficient. While it makes perfect sense to return search results at the same time you request facets (except for successive pages, when facets won't change, of course), for the suggest behavior I'd set rows=0.

I personally tend towards smaller single purpose handlers rather than trying to make the "standard" one do it all.

        Erik


Reply via email to