Apologies I have tried that method as well. /solr/select/?q=b007vty6&defType=dismax&qf=id^10%20parent_id^9%20brand_container_id^8%20series_container_id^8%20subseries_container_id^8%20clip_container_id^1%20clip_episode_id^1&debugQuery=on&fl=id,parent_id,brand_container_id,series_container_id,subseries_container_id,clip_episode_id,clip_episode_id,score&wt=json&indent=on
same result ( just higher scores ). It's almost as if partial matches on brand|series_container_id and id are being considered in the 1st document. Surely this can't be right / expected? { - - responseHeader: { - status: 0 - QTime: 13 - - params: { - debugQuery: "on" - fl: "id,parent_id,brand_container_id,series_container_id,subseries_container_id,clip_episode_id,clip_episode_id,score" - indent: "on" - q: "b007vty6" - qf: "id^10 parent_id^9 brand_container_id^8 series_container_id^8 subseries_container_id^8 clip_container_id^1 clip_episode_id^1" - wt: "json" - defType: "dismax" } } - - response: { - numFound: 2 - start: 0 - maxScore: 21.138214 - - docs: [ - - { - series_container_id: "b007vm94" - id: "b007vsvm" - brand_container_id: "b007hhk5" - subseries_container_id: "b007vty6" - clip_episode_id: "" - score: 21.138214 } - - { - parent_id: "b007vm94" - id: "b007vty6" - score: 5.1243143 } ] } - - debug: { - rawquerystring: "b007vty6" - querystring: "b007vty6" - parsedquery: "+DisjunctionMaxQuery((id:b007vty6^10.0 | clip_episode_id:"b 007 vty 6" | subseries_container_id:"b 007 vty 6"^8.0 | series_container_id:"b 007 vty 6"^8.0 | clip_container_id:"b 007 vty 6" | brand_container_id:"b 007 vty 6"^8.0 | parent_id:"b 007 vty 6"^9.0)) ()" - parsedquery_toString: "+(id:b007vty6^10.0 | clip_episode_id:"b 007 vty 6" | subseries_container_id:"b 007 vty 6"^8.0 | series_container_id:"b 007 vty 6"^8.0 | clip_container_id:"b 007 vty 6" | brand_container_id:"b 007 vty 6"^8.0 | parent_id:"b 007 vty 6"^9.0) ()" - - explain: { - b007vsvm: " 21.138214 = (MATCH) sum of: 21.138214 = (MATCH) max of: 21.138214 = (MATCH) weight(subseries_container_id:"b 007 vty 6"^8.0 in 39526), product of: 0.85312855 = queryWeight(subseries_container_id:"b 007 vty 6"^8.0), product of: 8.0 = boost 49.55458 = idf(subseries_container_id: b=547 007=31 vty=1 6=87) 0.0021519922 = queryNorm 24.77729 = fieldWeight(subseries_container_id:"b 007 vty 6" in 39526), product of: 1.0 = tf(phraseFreq=1.0) 49.55458 = idf(subseries_container_id: b=547 007=31 vty=1 6=87) 0.5 = fieldNorm(field=subseries_container_id, doc=39526) " - b007vty6: " 5.1243143 = (MATCH) sum of: 5.1243143 = (MATCH) max of: 5.1243143 = (MATCH) weight(id:b007vty6^10.0 in 39512), product of: 0.33207658 = queryWeight(id:b007vty6^10.0), product of: 10.0 = boost 15.431123 = idf(docFreq=1, maxDocs=3701577) 0.0021519922 = queryNorm 15.431123 = (MATCH) fieldWeight(id:b007vty6 in 39512), product of: 1.0 = tf(termFreq(id:b007vty6)=1) 15.431123 = idf(docFreq=1, maxDocs=3701577) 1.0 = fieldNorm(field=id, doc=39512) " } - QParser: "DisMaxQParser" - altquerystring: null - boostfuncs: null - - timing: { - time: 13 - - prepare: { - time: 3 - - org.apache.solr.handler.component.QueryComponent: { - time: 3 } - - org.apache.solr.handler.component.FacetComponent: { - time: 0 } - - org.apache.solr.handler.component.MoreLikeThisComponent: { - time: 0 } - - org.apache.solr.handler.component.HighlightComponent: { - time: 0 } - - org.apache.solr.handler.component.StatsComponent: { - time: 0 } - - org.apache.solr.handler.component.DebugComponent: { - time: 0 } } - - process: { - time: 10 - - org.apache.solr.handler.component.QueryComponent: { - time: 0 } - - org.apache.solr.handler.component.FacetComponent: { - time: 0 } - - org.apache.solr.handler.component.MoreLikeThisComponent: { - time: 0 } - - org.apache.solr.handler.component.HighlightComponent: { - time: 0 } - - org.apache.solr.handler.component.StatsComponent: { - time: 0 } - - org.apache.solr.handler.component.DebugComponent: { - time: 10 } } } } } On 15 June 2011 09:39, Ahmet Arslan <iori...@yahoo.com> wrote: > > I have 2 document types but want to return any documents > > where the requested > > ID appears. The ID appears in multiple attributes but I > > want to boost > > results based on which attribute contains the ID. > > > > so my query is > > > > q="id:b007vty6 parent_id:b007vty6 > > brand_container_id:b007vty6 > > series_container_id:b007vty6 > > subseries_container_id:b007vty6 > > clip_container_id:b007vty6 clip_episode_id:b007vty6" > > > > and I use qf to boost fields > > > > qf="id^10 parent_id^9 brand_container_id^8 > > series_container_id^8 > > subseries_container_id^8 clip_container_id^1 > > clip_episode_id^1" > > > > There is a misunderstanding here. qf parameter is specific to (e)dismax > query parser plugin. For more information about it please see: > > http://www.lucidimagination.com/blog/2010/05/23/whats-a-dismax/ > > Your query string can be something like this: > > defType=dismax&q=b007vty6&qf="id^10 parent_id^9 brand_container_id^8 ... > > It automatically expands your simple word query to multiple fields. > defType=dismax is a must to enable it, either in URL or in solrconfig.xml > (defaults section). >