官术网_书友最值得收藏!

Why use Sphinx for full-text searching?

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:

  • It has a higher indexing speed. It is 50 to 100 times faster than MySQL FULLTEXT and 4 to 10 times faster than other external search engines.
  • It also has higher searching speed since it depends heavily on the mode, Boolean vs. phrase, and additional processing. It is up to 500 times faster than MySQL FULLTEXT in cases involving a large result set with GROUP BY. It is more than two times faster in searching than other external search engines available.
  • As mentioned earlier, relevancy is among the key features one expects when using a search engine, and Sphinx performs very well in this area. It has phrase-based ranking in addition to classic statistical BM25 ranking.
  • Last but not the least, Sphinx has better scalability. It can be scaled vertically (utilizing many CPUs, many HDDs) or horizontally (utilizing many servers), and this comes out of the box with Sphinx. One of the biggest known Sphinx cluster has over 3 billion records with more than 2 terabytes of size.

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.

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.

主站蜘蛛池模板: 天等县| 平塘县| 宁武县| 桃源县| 侯马市| 永福县| 威海市| 四会市| 玛曲县| 措美县| 扶沟县| 赞皇县| 台北县| 巴彦县| 吉首市| 叶城县| 怀宁县| 营口市| 庆阳市| 临西县| 四平市| 建瓯市| 灵石县| 荆州市| 方城县| 怀宁县| 随州市| 忻州市| 全州县| 潮安县| 临泉县| 嘉峪关市| 阿鲁科尔沁旗| 博白县| 云安县| 乌审旗| 贡觉县| 都昌县| 富川| 同江市| 射洪县|