I only have time for a quick glance, but what jumps out is that this part: title:rude boy^100
probably isn't matching "boy" against your title field, it's matching "rude" against title, but "boy" against your default field and boosting the "boy" part. Try parenthesizing (at least that works in Lucene....). HTH Erick On Thu, Mar 18, 2010 at 5:06 PM, Alex Thurlow <a...@blastro.com> wrote: > I'm trying to give a super boost to fields that match exactly, but it > doesn't appear to be working. I have this: > > <field name="artist_tight" type="string_lower" indexed="true" > stored="true"/> > <field name="title_tight" type="string_lower" indexed="true" > stored="true"/> > > <copyField source="title" dest="title_tight"/> > <copyField source="artist" dest="artist_tight"/> > > > <fieldType name="string_lower" class="solr.TextField" > sortMissingLast="true" omitNorms="true"> > <analyzer> > <tokenizer class="solr.KeywordTokenizerFactory"/> > <filter class="solr.LowerCaseFilterFactory" /> > <filter class="solr.TrimFilterFactory" /> > </analyzer> > </fieldType> > > The dataset has two items with title="Rude Boy", but they are coming up way > down the list. My query looks like this: title:rude boy^100 OR artist:rude > boy^100 OR description:rude boy^5 OR tags:rude boy^10 OR title:"rude > boy"~100^100 OR artist:"rude boy"~100^100 OR description:"rude boy"~100000 > OR tags:"rude boy"~1000^10 OR title_tight:rude boy^1000 or artist_tight:rude > boy^1500 OR artist_title:rude boy^100 > > The debug output seems to say that it's not even matching that field: > 0.33547562 = (MATCH) product of: 1.2748073 = (MATCH) sum of: 0.004359803 = > (MATCH) weight(title:rude in 19218), product of: 7.7693147E-4 = > queryWeight(title:rude), product of: 8.978507 = idf(docFreq=6, > maxDocs=20423) 8.653237E-5 = queryNorm 5.611567 = (MATCH) > fieldWeight(title:rude in 19218), product of: 1.0 = > tf(termFreq(title:rude)=1) 8.978507 = idf(docFreq=6, maxDocs=20423) 0.625 = > fieldNorm(field=title, doc=19218) 0.002346348 = (MATCH) weight(tags:rude in > 19218), product of: 8.0604723E-4 = queryWeight(tags:rude), product of: > 9.31498 = idf(docFreq=4, maxDocs=20423) 8.653237E-5 = queryNorm 2.910931 = > (MATCH) fieldWeight(tags:rude in 19218), product of: 1.0 = > tf(termFreq(tags:rude)=1) 9.31498 = idf(docFreq=4, maxDocs=20423) 0.3125 = > fieldNorm(field=tags, doc=19218) 1.203806 = weight(title:"rude > boy"~100^100.0 in 19218), product of: 0.12910038 = queryWeight(title:"rude > boy"~100^100.0), product of: 100.0 = boost 14.919317 = idf(title: rude=6 > boy=145) 8.653237E-5 = queryNorm 9.3245735 = fieldWeight(title:"rude boy" in > 19218), product of: 1.0 = tf(phraseFreq=1.0) 14.919317 = idf(title: rude=6 > boy=145) 0.625 = fieldNorm(field=title, doc=19218) 0.060910318 = > weight(tags:"rude boy"~1000^10.0 in 19218), product of: 0.012987026 = > queryWeight(tags:"rude boy"~1000^10.0), product of: 10.0 = boost 15.008287 = > idf(tags: rude=4 boy=186) 8.653237E-5 = queryNorm 4.6900897 = > fieldWeight(tags:"rude boy" in 19218), product of: 1.0 = tf(phraseFreq=1.0) > 15.008287 = idf(tags: rude=4 boy=186) 0.3125 = fieldNorm(field=tags, > doc=19218) 0.0033848688 = (MATCH) weight(artist_title:rude in 19218), > product of: 7.6537667E-4 = queryWeight(artist_title:rude), product of: > 8.844975 = idf(docFreq=7, maxDocs=20423) 8.653237E-5 = queryNorm 4.4224877 = > (MATCH) fieldWeight(artist_title:rude in 19218), product of: 1.0 = > tf(termFreq(artist_title:rude)=1) 8.844975 = idf(docFreq=7, maxDocs=20423) > 0.5 = fieldNorm(field=artist_title, doc=19218) 0.2631579 = coord(5/19) > > > Someone else suggested I use DisMax, but I can't really get that to do what > I want right now either. I'm just wondering why this seems to not be using > this field at all. > > -Alex > >