I agree with Otis's suggestion. I don't think that the preference table/matrix ( 1)product_id, 2)user_id, 3)score_value) should be indexed in Lucene/Solr. Any key-value/RDBMS/iMDG updateable storage is fair enough to store preferences lists: user/sessionID -> { (product, weight), (product, weight), (product, weight),} Then, you can add list of product_id as a boost query http://wiki.apache.org/solr/DisMaxQParserPlugin#bq_.28Boost_Query.29 for every user's request. Once again, update product index by the click-through stream is usually a bad idea. I think it can be used as starting point, MLT and Mahout are definitely right directions.
Good Luck. On Sun, Nov 25, 2012 at 5:05 AM, Otis Gospodnetic < otis.gospodne...@gmail.com> wrote: > Hi, > > I don't have a full picture here, but why not just have userID = {list of > clicked product IDs} stored somewhere (in memory, disk, DB...) and then, at > search time, retrieve last N product IDs, run MLT query on those IDs, and > then do whatever you desire to do... either take top N of those hits and > slap them on top of regular results, or take top N of those and boost them > in the main results, or ... if you are into this, you may find > http://sematext.com/search-analytics/index.html very useful, or at least > interesting. > > Otis > -- > SOLR Performance Monitoring - http://sematext.com/spm/index.html > > > > > On Fri, Nov 23, 2012 at 12:56 AM, sagarzond <sagarz...@gmail.com> wrote: > > > In our application we are providing product master data search with SOLR. > > Now > > our requirement want to provide user context based search(means we are > > providing top search result using user history). > > > > For that i have created one score table having following field > > > > 1)product_id > > > > 2)user_id > > > > 3)score_value > > > > As soon as user clicked for any product that will create entry in this > > table > > and also increase score_value if already present product for that user. > We > > are planning to use boost field and eDisMax from SOLR to improve search > > result but for this i have to use one to many mapping between score and > > product table(Because we are having one product with different score > value > > for different user) and solr not providing one to many mapping. > > > > We can solved this issue (one to many mapping handling) by de-normalizing > > structure as having multiple product entry with different score value for > > different user but it result huge amount of redundant data. > > > > Is this(de-normalized structure) currect way to handle or is there any > > other > > way to handle such context based search. > > > > Plz help me > > > > > > > > -- > > View this message in context: > > > http://lucene.472066.n3.nabble.com/User-context-based-search-in-apache-solr-tp4021964.html > > Sent from the Solr - User mailing list archive at Nabble.com. > > > -- Sincerely yours Mikhail Khludnev Principal Engineer, Grid Dynamics <http://www.griddynamics.com> <mkhlud...@griddynamics.com>