Thanks for your thoughts, Chris. I agree with you about the user's experience. Snooth doesn't serve any ads/sponsored results -- the goal here is to make sure that the most recent document the user has acted on shows up top in searches for recent activity. My aim is to forcibly preserve the sort order until the document can be reindexed/ updated.

Since the dynamic field is too memory intensive, I'll try boosting on the date field -- and boosting more on the date field for the document that needs to be up top. If that doesn't end up working I'll just perform two queries and be done with it.

Mark

On Oct 25, 2007, at 3:11 AM, Chris Hostetter wrote:


: The typical use case, though, is for the featured document to be on top only : for certain queries. Like in an intranet where someone queries 401K or : retirement or similar, you want to feature a document about benefits that : would otherwise rank really low for that query. I have not be able to make
: sorting strategies work very well.

this type of question typically falls into two use cases:
  1) "targeted ads"
  2) "sponsored results"

in the targeted ads case, the "special" matches aren't part of the normal flow of results, and don't fit into pagination -- they always appera at the top, or to the right, on every page, no matter what the sort .... this kind of usage doesn't really need any special logic, it can be solved as
easily by a second Solr hit as it can by custom request handler logic.

in the "sponsored results" use case, the "special" matches should appear in the normal flow of results as the #1 (2, 3, etc) matches, so that they
don't appear on page#2 ... but that also means that it's extremely
disconcerting for users if those matches are still at the top when the
userse resort.  if a user is looking at product listings, sorted by
"relevancy" and the top 3 results all say they are "sponsered" that's fine ... but if the user sort by "price" and those 3 results are still at teh top of the list, even though they clearly aren't the chepest, that's just
going to piss the user off.

in my profesional opinion: don't fuck with your users.  default to
whatever order you want, but if the user specificly requests to sort the
results by some option, do it.

assuming you follow my professional opinion, then "boosting" docs to have
an artifically high score will work fine.

if you absolutely *MUST* have certain docs "sorting" before others,
regardless of which sort option the user picks, then it is still possible do ... i'm hesitant to even say how, but if people insist on knowing...



allways sort by score first, then by whatever field the user wants to sort by ... but when the user wants to sort on a specific field, move the users main query input into an "fq" (so it doesn't influence the score) ... and use an extremely low boost matchalldocs query along with your "special doc
matching query" as the main (scoring) query param.  the key being that
even though your primary sort is on score, every doc except your special
matches have identical scores.

(this may not be possible with dismax because it's not trivial to move
the query into an fq, it might work if you can use "0" as the boost on
fields in the qf so it still dictates the matches but doesn't influence
the score enough to throw off the sort)





-Hoss


mark angelillo
snooth inc.
o: 646.723.4328
c: 484.437.9915
[EMAIL PROTECTED]
snooth -- 1.8 million ratings and counting...


Reply via email to