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>

Reply via email to