If you're looking for a good Database Management System (DBMS), there are plenty of options available with support for full-text indexing and searches, such as MySQL, PostgreSQL, and SQL Server. There are also external full-text search engines, such as Lucene and Solr. Let's see the advantages of using Sphinx over the DBMS's full-text searching capabilities and other external search engines:
In one of his presentations, Andrew Aksyonoff (creator of Sphinx) presented the following benchmarking results. Approximately 3.5 Million records with around 5 GB of text were used for the purpose.
MySQL |
Lucene |
Sphinx | |
Indexing time, min |
1627 |
176 |
84 |
Index size, MB |
3011 |
6328 |
2850 |
Match all, ms/q |
286 |
30 |
22 |
Match phrase, ms/q |
3692 |
29 |
21 |
Match bool top-20, ms/q |
24 |
29 |
13 |
Apart from a basic search, there are many features that make Sphinx a better solution for searching. These features include multivalve attributes, tokenizing settings, wordforms, HTML processing, geosearching, ranking, and many others. We will be taking a more elaborate look at some of these features in later chapters.