lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott Smith <ssm...@mainstreamdata.com>
Subject Help on custom sort
Date Sat, 20 Sep 2014 16:26:01 GMT
I need to provide a custom sort option for sorting by price and I would like some suggestions.
 It's not the straightforward "just sort by a price field in the document" scenario or I wouldn't
be asking for help.  Here's the scenario I'm dealing with.

I have 100 million+ documents (so multi-sharded).  Users search for documents they are interested
in using a standard keyword search.  They then purchase documents they are interested in.
 So far, nothing hard.

Here's where things get "interesting".  The documents come from multiple suppliers.  Each
supplier sets a price for his documents and different suppliers will provide different pricing.

That wouldn't be difficult except that *users* are divided up into different groups and depending
on which group they are in, the supplier will charge the user a different price.  So, user
A may pay one price for a document and user B may pay a different price for the same document
just because user A and user B are in different groups.  I don't even know if the relative
order or pricing is the same between different groups (e.g., if document X is more expensive
than document Y for a user in group M, it may not be more expensive for a user in group N).
 The one thing that may make this doable is that supplier A will likely have the same price
for all of his documents for each of the user groups.  So, a user in group A will pay the
same price regardless of which document he buys from supplier 1.  A user in group B will also
pay the same price for any document from supplier 1; it's just that a user in group B will
likely pay a different price than a user in group A.  So, within a supplier, the price varies
based on user group, not the document.

To summarize, one of the requirements for the system is that we provide the ability to sort
search results based on price.  This would be easy except that the price a user pays not only
depends on what he wants to buy, but on what group the he is in.

I suspect there is some kind of custom solr module I'm going to have to write.  I'm thinking
that the user group gets passed in as a custom solr parameter (I'm assuming that's possible??).
 Then I'm thinking that there has to be some kind of in memory database that tracks pricing
based on user group and document supplier).

I'm happy to go read code, documents, links, etc if someone can point me in the right direction.
 What kind of solr module am I likely going to write (extend) and are there some examples
somewhere?  Maybe there's a way to do this without having to extend a solr module??

Hope this makes sense.  Any help is appreciated.

Scott



Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message