Hi everyone,

At my "Learning-to-Rank with Apache Solr and Bees" talk on Friday [1] there was 
one question that wasn't properly understood (by me) and so not fully answered 
in the room but later in individual conversation the question/answer became 
clearer. So here I just wanted to follow-up and share with everyone (using a 
fictional mini example).

Hope that helps.

Thanks,

Christine

---

Scenario:
* a schema with multiple text fields e.g. title, summary, details
* search queries consider the text fields

Intention:
* have features that capture how well the user query matches various text fields

Example queries and feature definitions:

* without LTR:
  select?q=developer
  select?q=chef

* with LTR:
  select?q=developer&rq={!ltr model=myDemoModel efi.userQuery=developer}
  select?q=chef&rq={!ltr model=myDemoModel efi.userQuery=chef}

Notice how in the above example the two users' queries pass different 
efi.userQuery values and how the feature definitions below include a 
${userQuery} placeholder.

myDemoFeatures.json

[
 {
  "name" : "userQueryTitle",
  "class" : "org.apache.solr.ltr.feature.SolrFeature",
  "params" : { "q" : "title:${userQuery}" }
 },
 {
  "name" : "userQuerySummary",
  "class" : "org.apache.solr.ltr.feature.SolrFeature",
  "params" : { "q" : "summary:${userQuery}" }
 },
 {
  "name" : "userQueryDetails",
  "class" : "org.apache.solr.ltr.feature.SolrFeature",
  "params" : { "q" : "details:${userQuery}" }
 }
]

---

Links

[1] http://sched.co/BAwI
[2] http://lucene.apache.org/solr/guide/6_6/learning-to-rank.html
[3] https://github.com/cpoerschke/ltr-with-bees

Reply via email to