I've made a RequestHandler class that acts as follows:

1. At its initialization, it creates a StandardRequestHandler and hangs onto it.
2. When a query comes to it (I configure it to a custom qt value), it:
  a. creates a new query based on the query that arrived
  b. creates a LocalSolrQueryRequest for the current core and a param
set containing the derived query
  c. runs this request through the SearchHandler
  d. uses a searcher to retrieve all the docs
  e. rescores/reorders them using our code
  f. attaches the result of this process to the response. The
rescoring code creates a DocSlice containing the usual items, and that
becomes "response".

By and large, this works, but I've a few points of mystification at
hand, and I'd be most grateful for some illumination.

1. Is there any reason to pass FL to the inner query?
StandardRequestHandler.handleRequest never seems to fill fields, since
that's a response-write job anyway.

2. My 'rescoring' operates on the assumption that the entire relevancy
is determined by the output of our code. If we wanted to combine our
ranking (which produces similarity numbers between 0 and 1) with
ordinary scores, any advice on scaling? (We'd want to subtract out the
contribution of the initial search on our funny fields, and then
combine in our rescoring value instead).

3. In 3.5.0, the admin gui never shows me scores other than 0 when I
fire this up. SolrJ works just fine, scores come back, but with the
admin gui, if I put my special QT in the query type and include score
in the field list, the value displayed is always 0. I'd be grateful
for any clue as to what I might have gummed up.

Reply via email to