You might be able to split the ranking into a common score and a dynamic score. Return the results nearly the right order, then do a minimal reordering after. If you plan to move a result by a maximum of five positions, then you could fetch 15 results to show 10 results. That is far, far cheaper than fetching all results and ranking them all.
I wrote a description of the client-side part of this last year: http://wunderwood.org/most_casual_observer/2007/04/progressive_reranking.htm l wunder On 7/29/08 5:59 PM, "Jim Murphy" <[EMAIL PROTECTED]> wrote: > > If figured that it would be - but the rankings are dynamically calculated. > I'd like to limit the number of calculations performed for this very reason. > Still not sure if this approach will be better than naivly filtering docs > after the query has happened. > > Reading about ValueSource thanks... > > Jim > > > > Yonik Seeley wrote: >> >> Calling out will be an order of magnitude (or two) slower compared to >> moving the rankings into Solr, but it is doable. See ValueSource >> (it's used by FunctionQuery). >> >> -Yonik >> >> On Tue, Jul 29, 2008 at 8:23 PM, Jim Murphy <[EMAIL PROTECTED]> wrote: >>> >>> I take it I can add my own functions that would take care of calling out >>> to >>> my external ranking system? >>> >>> Looking for docs on that... >>> >>> Jim >>> >>> >>> Yonik Seeley wrote: >>>> >>>> A function query might fit your needs... you could move some or all of >>>> your external ranking system into Solr. >>>> >>>> -Yonik >>>> >>>> On Tue, Jul 29, 2008 at 7:08 PM, Jim Murphy <[EMAIL PROTECTED]> >>>> wrote: >>>>> >>>>> I need to store 100 million documents in our Solr instance and be able >>>>> to >>>>> retrieve them with simple term queries - keyword matches. I'm NOT >>>>> implementing a search application where documents are scored and >>>>> ranked...they either match the keywords or not. Also, I have an >>>>> external >>>>> ranking system that I need to use to filter and order the search >>>>> results. >>>>> >>>>> My requirements are for the very fast and reliable retrieval so I'm >>>>> trying >>>>> to figure a place to hook in or customize Solr/Lucene to just do the >>>>> simplest thing, reliably and fast. >>>>> >>>>> 1. A naive approach would be to implement a handler, let the query >>>>> happen >>>>> normally then perform N lookups to my external scoring system then >>>>> filter >>>>> and sort the documents. It seems I may be doing a lot of extra work >>>>> that >>>>> way, especially with paging results and who knows what I'd doing to the >>>>> cache. >>>>> >>>>> 2. Create a custom FieldType that is virtual and calls out to my >>>>> external >>>>> system? Then queries could be written to return all docs > my rank. >>>>> >>>>> 3. Implement custom Query, Weight, Scorer (et al) implementations to >>>>> minimize the "Search Stuff" and just delegate calls to my external >>>>> ranking >>>>> system. >>>>> >>>>> 4. A filter of some kind? >>>>> >>>>> >>>>> I'd love to get a sanity check on any of these approaches or some >>>>> recommendations. >>>>> >>>>> Thanks >>>>> >>>>> Jim >>>> >>>> >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/Using-Solr-for-Info-Retreval-not-so-much-Search...-tp1 >>> 8723102p18723877.html >>> Sent from the Solr - User mailing list archive at Nabble.com. >>> >>> >> >>