I need your opinion…
I am developing an application in PHP & MYSQL (AZURE environment).
I wrote a search engine in MYSQL for the application.
The Search Engine should index pages. Each page is “split” to words and for each word a table is created containing all of the addresses in which the word appears.
If for example the client looking for the word “tablet”, the app access a table called “tablet” and will extract all the addresses in the table.
If you are searching for the two words then retrieve all addresses two relevant tables and perform cutting each address.
The problem is that at least 10 000 words i.e. 10 000 tables.
Is there a problem in DATABASE that a large number of tables?
Is the use of Microsoft’s cloud server (AZURE) improves the situation?
Is the DATABASE writing to assign the tables in the cloud or just make them and the cloud takes care for this and arrange them for me?
You should consider solutions which do the indexing for you.
Apache Lucene is one of them http://lucene.apache.org/core/ and if you are using PHP, there are implementations in this language as well (framework.zend.com)
I would also recommend using Sphinx Search http://sphinxsearch.com. It is a great tool which will do the indexing for you. It will index the data from a DB and also provide an interface which you can query in ANSI SQL.