Hi;

I use Solr 4.5.1 I have a case: When a user searches for some specific
keywords some documents should be listed at much more higher than its usual
score. I mean I have probabilities of which documents user may want to see
for given keywords.

I have come up with that idea. I can put a new field to my schema. This
field holds keyword and probability as payload. When a user searches for a
keyword I will calculate usual document score for given fields and also I
will make a search on payloaded field and I will multiply the total score
with that payload.

I followed that example:
http://sujitpal.blogspot.com/2013/07/porting-payloads-to-solr4.html#! However
that example extends Qparser directly but I want to use capabilities of
*edismax*.

So I found that example:
file:///home/furkan/Desktop/DigitalPebble's%20Blog%20%20Using%20Payloads%20with%20DisMaxQParser%20in%20SOLR.html
This
one exteds dismax and but I could not used payloads at that example.

I want to combine above to solutions. First solution has that case:

@Override
    public Similarity get(String name) {
        if ("payloads".equals(name) || "cscores".equals(name)) {
            return new PayloadSimilarity();
        } else {
            return new DefaultSimilarity();
        }
    }

However dismax behaves different. i.e. when you search for cscores:A it
changes that into that:

+((text:cscores:y text:cscores text:y text:cscoresy)) ()

When I debug it name is *text *instead of *cscores *and does not work. My
idea is combining two examples and extending *edismax*. Do you have any
idea how to extend it for edismax or do you have any idea what to do for my
case.

Thanks;
Furkan KAMACI

Reply via email to