Union Site Search with Relevance

Thread Solved

Join Date: May 2008
Posts: 45
Reputation: DiGSGRL is an unknown quantity at this point 
Solved Threads: 4
DiGSGRL's Avatar
DiGSGRL DiGSGRL is offline Offline
Light Poster

Union Site Search with Relevance

 
0
  #1
Dec 31st, 2008
I am building a site search that involves a union of two tables in two databases and needs to have relevancy factored in.
I do not want to use a full-text or boolean search.

I can search one database and one table using relevance fine. I can union the two tables and search without relevance fine. When I put relevance on both tables with the union it no longer works.

Here is the query with union that works:
  1. (SELECT gameID,title FROM searchTest.games
  2. WHERE((title LIKE '%$searchTerm1%' OR author LIKE '%$searchTerm1%' OR description LIKE '%$searchTerm1%')))
  3. UNION
  4. (SELECT postID,title FROM searchTest2.posts WHERE((title LIKE '%$searchTerm1%' OR username LIKE '%$searchTerm1%' OR content LIKE '%$searchTerm1%') ))

Here is the query on one table with relevance that works:
  1. SELECT gameID,title, ((2*(title LIKE '%$searchTerm1%'))+(1.5*(author LIKE '%$searchTerm1%'))+(1*(description LIKE '%$searchTerm1%')))AS relevance FROM games WHERE(title LIKE '%$searchTerm1%' OR author LIKE '%$searchTerm1%' OR description LIKE '%$searchTerm1%')AND locked=0 ORDER BY relevance DESC

Here is the query with union and relevance that does not work:
  1. SELECT gameID,title,
  2. ((2*(title LIKE '%$searchTerm1%'))+(1.5*(author LIKE '%$searchTerm1%'))+(1*(description LIKE '%$searchTerm1%')))
  3. AS relevance FROM games WHERE
  4. (((title LIKE '%$searchTerm1%' OR author LIKE '%$searchTerm1%' OR description LIKE '%$searchTerm1%'))AND locked=0)
  5. UNION
  6. SELECT postID,title,
  7. ((2*(title LIKE '%$searchTerm1%'))+(1.5*(author LIKE '%$searchTerm1%'))+(1*(description LIKE '%$searchTerm1%')))
  8. AS relevance FROM searchTest2.posts WHERE
  9. (((title LIKE '%$searchTerm1%' OR username LIKE '%$searchTerm1%' OR content LIKE '%$searchTerm1%'))AND locked=0)
I wouldn't be surprised if I did something really silly and screwed up a paren or something. I have been working on this for days and just can't seem to find the mistake that is keeping the union with relevance from running.
Thank you for looking and I hope someone can help!
Reply With Quote Quick reply to this message  
Join Date: May 2008
Posts: 45
Reputation: DiGSGRL is an unknown quantity at this point 
Solved Threads: 4
DiGSGRL's Avatar
DiGSGRL DiGSGRL is offline Offline
Light Poster

Re: Union Site Search with Relevance

 
0
  #2
Dec 31st, 2008
A couple more hours of staring at the screen and rewriting the statements have finally solved the problem. Both of the select statements needed to be encased in parens.
Reply With Quote Quick reply to this message  
Reply

This thread has been marked solved.
Perhaps start a new thread instead?
Message:



Other Threads in the MySQL Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC