Recommendations for building a big search engine

database-designdatabase-recommendation

I am creating a image search engine that would probably have millions of images tagged with keywords. Basically it would be something like Google Image search.

So I want to ask for any tips on designing the database of the application.

What kind of database system to use? How would the images table look like to store that huge quantity? How do I create the relation between the keywords and the image to be able to do a very quick search?

The programming will be done using a PHP Framework.

Thank you,
Alex.

Best Answer

you might consider to use an indexing framework like Apache Lucene as well. If not, I would recommend to model an inverted index like database. An inverted index uses keywords as key identifier for a set of images.

Inverted Index Table:

keyword image_ids
"sun" : [1,5,6]

Image Table

image_id  size    ...
   1     200x300  ...