Best Search Architechure for a conditional search

Hi - I'm exploring some options for a new search tool I'm building and would appreciate some advise on how to best architect it.

Here's the scenario:
- I've got a music search app with 30,000 searchable songs
- My existing search uses Solr (Lucene) to perform an indexed Keywords search against the stored keywords associated with each song.  

Currently, users can enter search terms into a Keywords box, which searches the indexed songs keywords field.  For example, a user could search: "happy, fun, upbeat".  This works great, but I want to add another layer to the search that allows users to enter a band name to search.  Where if the user searches "Pink Floyd" or "The Rolling Stones", it will recognize those as a band names, then grab the associated Band Description for said band, then pass it to the Solr search engine.

I'm using MySQL and am going to be importing a "band database" with around 50,000 band records, to use as my source data.  I'll call that table BANDS, and give it the following 2 fields:
- BandName
- BandDescription

From the front-end user search, I want to check the users search term against BANDS.BandName.
If a match is found; get BANDS.BandDescription and pass that to my Solr indexed search
If a match is not found; just search the user search Keywords in the Solr indexed search

------------------------------------

Please let me know if that makes sense.  Speed is imperative to the success of my search, so I'm wondering if this 2-stop-search approach is the correct way to do this.  I look forward to learning....
XbraddersAsked:
Who is Participating?
 
johanntagleCommented:
Usually the pattern is to search all keywords by default, then have a customized search if user wants to search by specific fields.  I haven't used solr but for sphinx you can choose to specify specific indexes to search, or all.  Suggest you stick to doing all the searches on solr.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.