You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by David Santamauro <da...@gmail.com> on 2014/02/11 18:25:18 UTC
boost group doclist members
Without falling into the x/y problem area, I'll explain what I want to
do: I would like to group my result set by a field, f1 and within each
group, I'd like to boost the score of the "most appropriate" member of
the group so it appears first in the doc list.
The "most appropriate member" is defined by the content of other fields
(e.g., f2, f3). So basically, I'd like to boost based on the values in
fields f2 and f3.
If there is a better way to achieve this, I'm all ears. But I was
thinking this could be achieved by using a function query as the
sortspec to group.sort.
Example content:
<doc>
<field name="f1">4181770</field> <!-- integer -->
<field name="f2">x_val</field> <!-- text -->
<field name="f3">100</field> <!-- integer -->
</doc>
<doc>
<field name="f1">4181770</field>
<field name="f2">y_val</field>
<field name="f3">100</field>
</doc>
<doc>
<field name="f1">4181770</field>
<field name="f2">z_val</field>
<field name="f3">100</field>
</doc>
All 3 of the above documents will be grouped into a doclist with
groupValue=4181770. My questions is then, How do I make the document
with f2=y_val appear first in the doclist. I've been playing with
group.field=f1
group.sort=query({!dismax qf=f2 bq=f2:y_val^100}) asc
... but I'm getting:
org.apache.solr.common.SolrException: Can't determine a Sort Order (asc
or desc) in sort spec 'query({!dismax qf=f2 bq=f2:y_val^100.0}) asc',
pos=14.
Can anyone point to a some examples of this?
thanks
David