Is solr 4.0 ready for prime time? (or other ways to use geo distance in search)

2011-01-21 Thread Alex Thurlow

Hi all,
I've been using solr 1.4 and it's working great for what I'm 
doing.  However, I'm now finding a need to filter results by location.  
Searching around, I see that the distance functions are implemented in 
solr 4.0, but there's no full release yet.


So my question is, is solr 4.0-dev ready to be used in prime time?  My 
other option would appear to be using the cartesian distance, which 
isn't totally accurate, but it probably good enough for my purposes.  
Something like including this in my filter query: 
sum(pow(sub(input_latitiude,stored_latitude),2),pow(sub(input_longitude,stored_longitude),2))distance filter


What's anyone else out there using?

Thanks in advance,
Alex


Lock obtain timed out: NativeFSLock

2011-02-01 Thread Alex Thurlow
I recently added a second core to my solr setup, and I'm now running 
into this "Lock obtain timed out" error when I try to update one core 
after I've updated another core.


In my update process, I add/update 1000 documents at a time and commit 
in between.  Then at the end, I commit and optimize.  The update of the 
new core has about 150k documents.  If I try to update the old core any 
time after updating the new core (even a couple hours later), I get the 
below error.  I've tried switching to the simple lock, but that didn't 
change anything.  I've tried this on solr 1.4 and 1.4.1 both with the 
spatial-solr-2.0-RC2 plugin loaded.


If I restart solr, I can then update the old core again.

Does anyone have any insight for me here?



Feb 1, 2011 10:59:57 AM org.apache.solr.common.SolrException log
SEVERE: org.apache.lucene.store.LockObtainFailedException: Lock obtain 
timed out: 
NativeFSLock@./solr/data/index/lucene-088f283afa122cf05ce7eadb1b5ce07b-write.lock

at org.apache.lucene.store.Lock.obtain(Lock.java:85)
at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1545)
at 
org.apache.lucene.index.IndexWriter.(IndexWriter.java:1402)
at 
org.apache.solr.update.SolrIndexWriter.(SolrIndexWriter.java:190)
at 
org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:98)
at 
org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:173)
at 
org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:220)
at 
org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61)
at 
org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:139)

at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:69)
at 
org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:54)
at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)

at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316)
at 
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at 
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)

at org.mortbay.jetty.Server.handle(Server.java:285)
at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
at 
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:835)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:641)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:202)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
at 
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
at 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)





Re: Lock obtain timed out: NativeFSLock

2011-02-01 Thread Alex Thurlow
I'm going to go ahead and replay to myself since I solved my problem.  
It seems I was doing one more update to the data at the end and wasn't 
doing a commit, so it then couldn't write to the other core.  Adding the 
last commit seems to have fixed everything.


On 2/1/2011 11:08 AM, Alex Thurlow wrote:
I recently added a second core to my solr setup, and I'm now running 
into this "Lock obtain timed out" error when I try to update one core 
after I've updated another core.


In my update process, I add/update 1000 documents at a time and commit 
in between.  Then at the end, I commit and optimize.  The update of 
the new core has about 150k documents.  If I try to update the old 
core any time after updating the new core (even a couple hours later), 
I get the below error.  I've tried switching to the simple lock, but 
that didn't change anything.  I've tried this on solr 1.4 and 1.4.1 
both with the spatial-solr-2.0-RC2 plugin loaded.


If I restart solr, I can then update the old core again.

Does anyone have any insight for me here?



Feb 1, 2011 10:59:57 AM org.apache.solr.common.SolrException log
SEVERE: org.apache.lucene.store.LockObtainFailedException: Lock obtain 
timed out: 
NativeFSLock@./solr/data/index/lucene-088f283afa122cf05ce7eadb1b5ce07b-write.lock

at org.apache.lucene.store.Lock.obtain(Lock.java:85)
at 
org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1545)
at 
org.apache.lucene.index.IndexWriter.(IndexWriter.java:1402)
at 
org.apache.solr.update.SolrIndexWriter.(SolrIndexWriter.java:190)
at 
org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:98)
at 
org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:173)
at 
org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:220)
at 
org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61)
at 
org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:139)

at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:69)
at 
org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:54)
at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)

at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316)
at 
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at 
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)

at org.mortbay.jetty.Server.handle(Server.java:285)
at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
at 
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:835)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:641)
at 
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:202)
at 
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
at 
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
at 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)







NullPointerException on queries to new 3rd core

2011-02-04 Thread Alex Thurlow
I just moved to a multi core solr instance a few weeks ago, and it's 
been working great.  I'm trying to add a 3rd core and I can't query 
against it though.


I'm running 1.4.1 (and tried 1.4.0) with the spatial search plugin.

This is the section in solr.xml






I've removed the index dir and completely rebuilt all three cores from 
scratch.  I can query the old ones, but any query against the new one 
gives me this error:


HTTP ERROR: 500
null

java.lang.NullPointerException
at org.apache.solr.request.XMLWriter.writePrim(XMLWriter.java:761)
at org.apache.solr.request.XMLWriter.writeStr(XMLWriter.java:619)
at org.apache.solr.schema.TextField.write(TextField.java:45)
at org.apache.solr.schema.SchemaField.write(SchemaField.java:108)
at org.apache.solr.request.XMLWriter.writeDoc(XMLWriter.java:311)
at org.apache.solr.request.XMLWriter$3.writeDocs(XMLWriter.java:483)
at org.apache.solr.request.XMLWriter.writeDocuments(XMLWriter.java:420)
at org.apache.solr.request.XMLWriter.writeDocList(XMLWriter.java:457)
at org.apache.solr.request.XMLWriter.writeVal(XMLWriter.java:520)
at org.apache.solr.request.XMLWriter.writeResponse(XMLWriter.java:130)
at 
org.apache.solr.request.XMLResponseWriter.write(XMLResponseWriter.java:34)
at 
org.apache.solr.servlet.SolrDispatchFilter.writeResponse(SolrDispatchFilter.java:325)
at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:254)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at 
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)

at org.mortbay.jetty.Server.handle(Server.java:285)
at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
at 
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
at 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)


I'm not finding any reason why this should be happening.


Different weights to different fields

2010-03-02 Thread Alex Thurlow

Hi everyone,
I'm new to Solr and just getting it set up and testing it out.  I'd 
like to know if there's a way to give a different weight to different 
data fields.


For an example, I'm going to be storing song information.  I have the 
fields: Artist, Title, Description, and Tags.  I'd like occurrences of 
the search term in Artist and Title to count more than the ones found in 
Description and Tags.  For instance, a search for Bruce Springsteen 
against all the fields should return the ones where artist=Bruce 
Springsteen higher than ones that just have that within the 
description.  Is this possible either in the indexing or with a query 
option?


Thanks,
Alex

--
Alex Thurlow
Blastro Networks

http://www.blastro.com
http://www.roxwel.com
http://www.yallwire.com



Re: Different weights to different fields

2010-03-02 Thread Alex Thurlow

That's great information.  Thanks!

-Alex

Alex Thurlow
Blastro Networks

http://www.blastro.com
http://www.roxwel.com
http://www.yallwire.com


On 3/2/2010 3:11 PM, Ahmet Arslan wrote:
   

 I'm new to Solr and just getting it set up
and testing it out.  I'd like to know if there's a way
to give a different weight to different data fields.

For an example, I'm going to be storing song
information.  I have the fields: Artist, Title,
Description, and Tags.  I'd like occurrences of the
search term in Artist and Title to count more than the ones
found in Description and Tags.  For instance, a search
for Bruce Springsteen against all the fields should return
the ones where artist=Bruce Springsteen higher than ones
that just have that within the description.  Is this
possible either in the indexing or with a query option?
 

You can do it in either query time or index time. In query time you can assign 
different boost values with carat operator.
e.g. Artist:(Bruce Springsteen)^10 Title:(Bruce Springsteen)^5

Also dismax[1] request handler might useful to you.

[1]http://wiki.apache.org/solr/DisMaxRequestHandler

At index time you can give different boost values to different fields. [2]
e.g.

[2]http://wiki.apache.org/solr/UpdateXmlMessages#Optional_attributes_for_.22field.22



   


Boosting exact matches

2010-03-10 Thread Alex Thurlow

Hi all,
I've searched the archives and web, but I haven't found a great 
solution to this issue.  I would like to boost the results for things 
that match exactly.  For example, I have an artist field with possible 
values of:

Houston
Whitney Houston
Marques Houston

I would like the Houston results to come up first and then the other ones.

What I currently have is:




And this is what my query looks like:
title:$search^100 OR artist:$search^100 OR description:$search^5 OR 
tags:$search^$tagboost OR title:\"$search\"~100^100 OR 
artist:\"$search\"~100^100 OR description:\"$search\"~10^5 OR 
tags:\"$search\"~1000^$tagboost OR artist_metaphone:$search^0.2 OR 
title_metaphone:$search^0.2 or title_tight:$search^100 or 
artist_tight:$search^100


I have tried artist_tight as string, textTight, and text_ws, all to no 
avail.  I have completely deleted my index between changes and 
reinserted all my data.


What am I missing here?



--
Alex Thurlow
Blastro Networks

http://www.blastro.com
http://www.roxwel.com
http://www.yallwire.com



Re: Boosting exact matches

2010-03-10 Thread Alex Thurlow
So I figured out part of my problem.  The string field type doesn't have 
the lowercase filter on it.  I can't seem to figure out how to add the 
lowercase filter to it though.


This:






Gives me this error.
SEVERE: org.apache.solr.common.SolrException: analyzer without class or 
tokenizer & filter list



Is there a way to have a string field that's case-insensitive?

Alex Thurlow
Blastro Networks

http://www.blastro.com
http://www.roxwel.com
http://www.yallwire.com


On 3/10/2010 12:11 PM, Alex Thurlow wrote:

Hi all,
I've searched the archives and web, but I haven't found a great 
solution to this issue.  I would like to boost the results for things 
that match exactly.  For example, I have an artist field with possible 
values of:

Houston
Whitney Houston
Marques Houston

I would like the Houston results to come up first and then the other 
ones.


What I currently have is:




And this is what my query looks like:
title:$search^100 OR artist:$search^100 OR description:$search^5 OR 
tags:$search^$tagboost OR title:\"$search\"~100^100 OR 
artist:\"$search\"~100^100 OR description:\"$search\"~10^5 OR 
tags:\"$search\"~1000^$tagboost OR artist_metaphone:$search^0.2 OR 
title_metaphone:$search^0.2 or title_tight:$search^100 or 
artist_tight:$search^100


I have tried artist_tight as string, textTight, and text_ws, all to no 
avail.  I have completely deleted my index between changes and 
reinserted all my data.


What am I missing here?





Matching a string across multiple fields

2010-03-10 Thread Alex Thurlow
So on with the questions.  I'm indexing music, and I have artist and 
title fields.  It works great if I just search for the artist or just 
for the title, but if I search for a string of both, that artist, title 
combination does not come up first.


For example, I have:
artist: Whitney Houston
title: Saving All My Love For You

artist: Whitney Houston
title: If I Told You That

artist: Whitney Houston
title: Exhale

If I search for "Whitney Houston Exhale", I would expect that song to 
come up first, but it doesn't.  Is there a special kind of matching or 
field setup I need to do for that?


--
Alex Thurlow
Blastro Networks

http://www.blastro.com
http://www.roxwel.com
http://www.yallwire.com



Undefined field price on Dismax query

2010-03-16 Thread Alex Thurlow

Hi guys,
Based on some suggestions, I'm trying to use the dismax query 
type.  I'm getting a weird error though that I think it related to the 
default test data set.


From the query tool (/solr/admin/form.jsp), I put in this:
Statement: artist:test title:test +type:video
query type: dismax

The rest is left as defaults.  I get this error page:
HTTP ERROR: 400
undefined field price

RequestURI=/solr/select

I am running out of the "example" dir still, but I made my own custom 
schema and deleted the index before inserting my new data.  Am I missing 
something that needs to be cleared?  Query type=standard works fine here.


Thanks,
Alex



Re: Undefined field price on Dismax query

2010-03-16 Thread Alex Thurlow
Aha.  That appears to be the issue.  I hadn't realized that the query 
handler had all of those definitions there.


-Alex


On 3/16/2010 6:56 PM, Erick Erickson wrote:

I suspect your problem is that you still have "price" defined in

solrconfig.xml for the dismax handler. Look for the section


You'll see price defined as one of the default fields for "fl" and "bf".

HTH
Erick

On Tue, Mar 16, 2010 at 6:55 PM, Alex Thurlow  wrote:

   

Hi guys,
Based on some suggestions, I'm trying to use the dismax query type.  I'm
getting a weird error though that I think it related to the default test
data set.

 From the query tool (/solr/admin/form.jsp), I put in this:
Statement: artist:test title:test +type:video
query type: dismax

The rest is left as defaults.  I get this error page:
HTTP ERROR: 400
undefined field price

RequestURI=/solr/select

I am running out of the "example" dir still, but I made my own custom
schema and deleted the index before inserting my new data.  Am I missing
something that needs to be cleared?  Query type=standard works fine here.

Thanks,
Alex


 
   


Trouble getting results from Dismax query

2010-03-17 Thread Alex Thurlow
I'm trying to use the Dismax request handler, and thanks to the list, I 
fixed one problem, which was the existing configs in solrconfig.xml.  
I'm now just not getting any result from the query though.  I changed 
the dismax section in solrconfig.xml to this:




dismax
explicit
0.01

100
*:*

artist title

0

title
regex



I'm using solr-php-client for my query, and the code looks like this:
$params['qt'] = 'dismax';
$params['qf'] = 'title^100 artist^150 description^5 tags^'.$tagboost.' 
artist_title^500 featuring_artist^20 collaborators^50';

$params['pf'] = 'artist_title';

 $query = "title:$search artist:$search description:$search 
tags:$search +type:$type artist_title:$search featuring_artist:$search 
collaborators:$search";

$response = $solr->search( $query, 0, 30 ,$params);

The raw query ends up as this:
/solr/select?qt=dismax&qf=title%5E100+artist%5E150+description%5E5+tags%5E10+artist_title%5E500+featuring_artist%5E20+collaborators%5E50&pf=artist_title&q=title%3Aakon+artist%3Aakon+description%3Aakon+tags%3Aakon+%2Btype%3Avideo+artist_title%3Aakon+featuring_artist%3Aakon+collaborators%3Aakon&version=1.2&wt=json&json.nl=map&start=0&rows=30

Responseheader is this:
 {"responseHeader":{"status":0,"QTime":9,"params":{"pf":"artist_title","start":"0","q":"title:akon artist:akon description:akon tags:akon +type:video artist_title:akon featuring_artist:akon 
collaborators:akon","qf":"title^100 artist^150 description^5 tags^10 artist_title^500 featuring_artist^20 
collaborators^50","json.nl":"map","qt":"dismax","wt":"json","version":"1.2","rows":"30"}},"response":{"numFound":0,"start":0,"docs":[]}}

If I remove the qt=dismax, I get results like I should.  Can anyone shed 
some light?


Thanks,
Alex




Issue with exact matching

2010-03-18 Thread Alex Thurlow
I'm trying to give a super boost to fields that match exactly, but it 
doesn't appear to be working.  I have this:


stored="true"/>







sortMissingLast="true" omitNorms="true">








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"~10 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



Re: Issue with exact matching

2010-03-19 Thread Alex Thurlow
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  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:
















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"~10
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