Glad I could help.

The wonderful thing about the Wiki is that all you have to do is create an
account to edit it. The new folks coming in often have a perspective on
things that "old timers" don't remember as being confusing, regardless of
how painful *their* learning curve was....

Best
Erick

On Fri, Mar 19, 2010 at 3:27 PM, Alex Thurlow <a...@blastro.com> wrote:

> 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