Databases Reference
In-Depth Information
presentation-only data (for example, a small list of users who last read the message) is
also stored in a separate MVA attribute and accessed through Sphinx.
Two key innovations here are using Sphinx to prebuild JOIN results and using its dis-
tributed capabilities to merge data scattered over many shards. This would be next to
impossible with MySQL alone. Efficient merging would require partitioning the data
over as few physical servers and tables as possible, but that would hurt both scalability
and extensibility.
Lessons learned from this example are:
• Sphinx can be used to aggregate highly partitioned data efficiently.
• MVAs can be used to store and optimize prebuilt JOIN results.
Summary
We've discussed the Sphinx full-text search system only briefly in this appendix. To
keep it short, we intentionally omitted discussions of many other Sphinx features, such
as HTML indexing support, ranged queries for better MyISAM support, morphology
and synonym support, prefix and infix indexing, and CJK indexing. Nevertheless, this
appendix should give you some idea of how Sphinx can solve many different real-world
problems efficiently. It is not limited to full-text searching; it can solve a number of
difficult problems that would traditionally be done in SQL.
Sphinx is neither a silver bullet nor a replacement for MySQL. However, in many cases
(which are becoming common in modern web applications), it can be used as a very
useful complement to MySQL. You can use it to simply offload some work, or even to
create new possibilities for your application.
Download it at http://www.sphinxsearch.com—and don't forget to share your own
usage ideas!
 
Search WWH ::




Custom Search