I would use a database function to force the ordering like the one
your provided that works in Oracle, but it doesn't look like mysql 5
supports that. If anyone else knows of a way to force the ordering
using mysql 5 queries, please respond. I think I'll just resort them
when they get back though.
Thanks!
On Apr 14, 2006, at 11:39 AM, Bryzek.Michael wrote:
We tried two approaches:
1) Pull data from the db in arbitrary order and then sort in the
application AFTER the retrieve. This will require two passes over
the results.
2) Add an order by clause to the select. In Oracle, you could do
something like "order by decode(444,1,333,2,555,3,888,4,...)". This
will force the order you want in the query from the db.
FWIW, after trying both of the above in production, we changed our
strategy to avoid the db hit altogether, storing everything we
needed for presentation within the Lucene index. We saw a net
performance increase AND simpler code when we did this.
-Mike
-----Original Message-----
From: Jeremy Hanna [mailto:[EMAIL PROTECTED]
Sent: Fri 4/14/06 1:15 PM
To: java-user@lucene.apache.org
Cc:
Subject: Re: Boosting Fields (in index) or Queries
Wow, I finally found out why I was getting results in the wrong order
- I got the results in the correct order from the Lucene index. I
got the explanation of each of the results along with their database
id and found the ordering mismatch.
The problem is in the database call. I am calling:
select * from product where id in (444, 333, 555, 888);
and the ordering that comes back is not preserved. So the results
are correct but the ordering and hence all of the relevancy is out
the window. So that at least leads me to the actual problem. Now I
have to figure out how I'll approach reordering the results because I
don't believe that there's any way to force the ordering of a list
and I don't want to call a separate database query for each id (lots
of database round-trips).
Thanks for the help Erik!
On Apr 13, 2006, at 7:13 PM, Erik Hatcher wrote:
On Apr 13, 2006, at 8:55 PM, Jeremy Hanna wrote:
Looking at the results, the first document in the results should
hopefully be near the bottom and the Explanation for this document
has a Description/Details (using the toString() on the
Explanation) of:
product of:
0.0 = sum of:
0.0 = coord(0/7)
So I'm kind of at a loss as to what's going on. Am I just doing
something crazy weird in my code? I didn't find that many
examples out there, so I'm kind of winging it according to what
I've read in the javadocs and what examples I could find.
Be sure to pass the document id, not the hit number, to explain().
Looks like you passed an id of an unmatched document.
Erik
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]