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

Reply via email to