Multi Layered max() Solr












0














The Solr "qf" parameter works as follows:



Let's say I have: query = "sid" and qf = [field1, field1_edge, field2, field2_edge].



The Solr score is calculated as follows:



max(f1, f1_e, f2, f2_e) + tie * (sum of other 3 fields) where: "tie" lies in [0,1]



Let's call: winner1 = field with max(f1, f1_e) and
winner2 = field with max(f2, f2_e)



I would like to score a given query in Solr as follows:



score1 = winner1_score + tie_1 * loser1_score



score2 = winner2_score + tie_1 * loser2_score



final score = score1 + tie_2 * score2



Effectively, I want to apply qf in two layers (taking tie_1 = 0 and tie_2 = 1).



What are my options to implement this idea of relevance? I think neither "qf" parameter nor function boosts support this.
Thanks!










share|improve this question
























  • Are you asking how you can use the separate scores as calculated for each field, or how you can use the max() function with the values (as stored in the fields named field1_score, etc.) from multiple predefined fields as the score?
    – MatsLindh
    yesterday










  • @MatsLindh Basically, I am interested in using scores of different fields to compare them in discrete steps. For example, in step 1, I want to compare scores from 2 differing forms of a particular field and decide which one to consider. In step 2, I want to take the winners of step 1 for different fields and compare them.
    – sidharth228
    yesterday












  • But the scores for each field should be computing using normal scoring? Would this be similar to using the dismax or edismax query parsers? (which creates disjunct queries and uses the max from each sub query as the query's score)
    – MatsLindh
    yesterday










  • Yes each field is scored using normal scoring using any of DisMax or eDisMax parser. I want to create disjunct queries and take max from each subquery more than once.
    – sidharth228
    20 hours ago










  • I fail to see the difference - max(s1, s2) is the same as max(field1_score, field1_edge_score, field2_score, score_field2_edge_score) which is the same as taking the max from each sub query, isn't it? And "taking the max more than once" would still be the same max, wouldn't it? Can you add examples showing what you want that differs from what the dismax query parsers provide and proper examples of how you'd expect a query to be scored in your example?
    – MatsLindh
    19 hours ago
















0














The Solr "qf" parameter works as follows:



Let's say I have: query = "sid" and qf = [field1, field1_edge, field2, field2_edge].



The Solr score is calculated as follows:



max(f1, f1_e, f2, f2_e) + tie * (sum of other 3 fields) where: "tie" lies in [0,1]



Let's call: winner1 = field with max(f1, f1_e) and
winner2 = field with max(f2, f2_e)



I would like to score a given query in Solr as follows:



score1 = winner1_score + tie_1 * loser1_score



score2 = winner2_score + tie_1 * loser2_score



final score = score1 + tie_2 * score2



Effectively, I want to apply qf in two layers (taking tie_1 = 0 and tie_2 = 1).



What are my options to implement this idea of relevance? I think neither "qf" parameter nor function boosts support this.
Thanks!










share|improve this question
























  • Are you asking how you can use the separate scores as calculated for each field, or how you can use the max() function with the values (as stored in the fields named field1_score, etc.) from multiple predefined fields as the score?
    – MatsLindh
    yesterday










  • @MatsLindh Basically, I am interested in using scores of different fields to compare them in discrete steps. For example, in step 1, I want to compare scores from 2 differing forms of a particular field and decide which one to consider. In step 2, I want to take the winners of step 1 for different fields and compare them.
    – sidharth228
    yesterday












  • But the scores for each field should be computing using normal scoring? Would this be similar to using the dismax or edismax query parsers? (which creates disjunct queries and uses the max from each sub query as the query's score)
    – MatsLindh
    yesterday










  • Yes each field is scored using normal scoring using any of DisMax or eDisMax parser. I want to create disjunct queries and take max from each subquery more than once.
    – sidharth228
    20 hours ago










  • I fail to see the difference - max(s1, s2) is the same as max(field1_score, field1_edge_score, field2_score, score_field2_edge_score) which is the same as taking the max from each sub query, isn't it? And "taking the max more than once" would still be the same max, wouldn't it? Can you add examples showing what you want that differs from what the dismax query parsers provide and proper examples of how you'd expect a query to be scored in your example?
    – MatsLindh
    19 hours ago














0












0








0







The Solr "qf" parameter works as follows:



Let's say I have: query = "sid" and qf = [field1, field1_edge, field2, field2_edge].



The Solr score is calculated as follows:



max(f1, f1_e, f2, f2_e) + tie * (sum of other 3 fields) where: "tie" lies in [0,1]



Let's call: winner1 = field with max(f1, f1_e) and
winner2 = field with max(f2, f2_e)



I would like to score a given query in Solr as follows:



score1 = winner1_score + tie_1 * loser1_score



score2 = winner2_score + tie_1 * loser2_score



final score = score1 + tie_2 * score2



Effectively, I want to apply qf in two layers (taking tie_1 = 0 and tie_2 = 1).



What are my options to implement this idea of relevance? I think neither "qf" parameter nor function boosts support this.
Thanks!










share|improve this question















The Solr "qf" parameter works as follows:



Let's say I have: query = "sid" and qf = [field1, field1_edge, field2, field2_edge].



The Solr score is calculated as follows:



max(f1, f1_e, f2, f2_e) + tie * (sum of other 3 fields) where: "tie" lies in [0,1]



Let's call: winner1 = field with max(f1, f1_e) and
winner2 = field with max(f2, f2_e)



I would like to score a given query in Solr as follows:



score1 = winner1_score + tie_1 * loser1_score



score2 = winner2_score + tie_1 * loser2_score



final score = score1 + tie_2 * score2



Effectively, I want to apply qf in two layers (taking tie_1 = 0 and tie_2 = 1).



What are my options to implement this idea of relevance? I think neither "qf" parameter nor function boosts support this.
Thanks!







search solr lucene full-text-search relevance






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 14 hours ago

























asked yesterday









sidharth228

135




135












  • Are you asking how you can use the separate scores as calculated for each field, or how you can use the max() function with the values (as stored in the fields named field1_score, etc.) from multiple predefined fields as the score?
    – MatsLindh
    yesterday










  • @MatsLindh Basically, I am interested in using scores of different fields to compare them in discrete steps. For example, in step 1, I want to compare scores from 2 differing forms of a particular field and decide which one to consider. In step 2, I want to take the winners of step 1 for different fields and compare them.
    – sidharth228
    yesterday












  • But the scores for each field should be computing using normal scoring? Would this be similar to using the dismax or edismax query parsers? (which creates disjunct queries and uses the max from each sub query as the query's score)
    – MatsLindh
    yesterday










  • Yes each field is scored using normal scoring using any of DisMax or eDisMax parser. I want to create disjunct queries and take max from each subquery more than once.
    – sidharth228
    20 hours ago










  • I fail to see the difference - max(s1, s2) is the same as max(field1_score, field1_edge_score, field2_score, score_field2_edge_score) which is the same as taking the max from each sub query, isn't it? And "taking the max more than once" would still be the same max, wouldn't it? Can you add examples showing what you want that differs from what the dismax query parsers provide and proper examples of how you'd expect a query to be scored in your example?
    – MatsLindh
    19 hours ago


















  • Are you asking how you can use the separate scores as calculated for each field, or how you can use the max() function with the values (as stored in the fields named field1_score, etc.) from multiple predefined fields as the score?
    – MatsLindh
    yesterday










  • @MatsLindh Basically, I am interested in using scores of different fields to compare them in discrete steps. For example, in step 1, I want to compare scores from 2 differing forms of a particular field and decide which one to consider. In step 2, I want to take the winners of step 1 for different fields and compare them.
    – sidharth228
    yesterday












  • But the scores for each field should be computing using normal scoring? Would this be similar to using the dismax or edismax query parsers? (which creates disjunct queries and uses the max from each sub query as the query's score)
    – MatsLindh
    yesterday










  • Yes each field is scored using normal scoring using any of DisMax or eDisMax parser. I want to create disjunct queries and take max from each subquery more than once.
    – sidharth228
    20 hours ago










  • I fail to see the difference - max(s1, s2) is the same as max(field1_score, field1_edge_score, field2_score, score_field2_edge_score) which is the same as taking the max from each sub query, isn't it? And "taking the max more than once" would still be the same max, wouldn't it? Can you add examples showing what you want that differs from what the dismax query parsers provide and proper examples of how you'd expect a query to be scored in your example?
    – MatsLindh
    19 hours ago
















Are you asking how you can use the separate scores as calculated for each field, or how you can use the max() function with the values (as stored in the fields named field1_score, etc.) from multiple predefined fields as the score?
– MatsLindh
yesterday




Are you asking how you can use the separate scores as calculated for each field, or how you can use the max() function with the values (as stored in the fields named field1_score, etc.) from multiple predefined fields as the score?
– MatsLindh
yesterday












@MatsLindh Basically, I am interested in using scores of different fields to compare them in discrete steps. For example, in step 1, I want to compare scores from 2 differing forms of a particular field and decide which one to consider. In step 2, I want to take the winners of step 1 for different fields and compare them.
– sidharth228
yesterday






@MatsLindh Basically, I am interested in using scores of different fields to compare them in discrete steps. For example, in step 1, I want to compare scores from 2 differing forms of a particular field and decide which one to consider. In step 2, I want to take the winners of step 1 for different fields and compare them.
– sidharth228
yesterday














But the scores for each field should be computing using normal scoring? Would this be similar to using the dismax or edismax query parsers? (which creates disjunct queries and uses the max from each sub query as the query's score)
– MatsLindh
yesterday




But the scores for each field should be computing using normal scoring? Would this be similar to using the dismax or edismax query parsers? (which creates disjunct queries and uses the max from each sub query as the query's score)
– MatsLindh
yesterday












Yes each field is scored using normal scoring using any of DisMax or eDisMax parser. I want to create disjunct queries and take max from each subquery more than once.
– sidharth228
20 hours ago




Yes each field is scored using normal scoring using any of DisMax or eDisMax parser. I want to create disjunct queries and take max from each subquery more than once.
– sidharth228
20 hours ago












I fail to see the difference - max(s1, s2) is the same as max(field1_score, field1_edge_score, field2_score, score_field2_edge_score) which is the same as taking the max from each sub query, isn't it? And "taking the max more than once" would still be the same max, wouldn't it? Can you add examples showing what you want that differs from what the dismax query parsers provide and proper examples of how you'd expect a query to be scored in your example?
– MatsLindh
19 hours ago




I fail to see the difference - max(s1, s2) is the same as max(field1_score, field1_edge_score, field2_score, score_field2_edge_score) which is the same as taking the max from each sub query, isn't it? And "taking the max more than once" would still be the same max, wouldn't it? Can you add examples showing what you want that differs from what the dismax query parsers provide and proper examples of how you'd expect a query to be scored in your example?
– MatsLindh
19 hours ago

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53944050%2fmulti-layered-max-solr%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53944050%2fmulti-layered-max-solr%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Monofisismo

Angular Downloading a file using contenturl with Basic Authentication

Olmecas