Thanks so much. That works really well now. So this brings up a complaint I have with the Solr documentation. I see very few actual examples. If I had seen any example of searching for a multi-word search, I assume it would have had these parentheses.

    -Alex

On 3/18/2010 5:54 PM, Erick Erickson wrote:
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


Reply via email to