Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Dapatkah saya memprediksi seberapa besar indeks Zend Framework saya? (dan beberapa Q cepat:s)

SOLR pada dasarnya adalah wadah Apache Tomcat yang mengimplementasikan antarmuka REST untuk menanyakan indeks Apache Lucene. Ya, Anda harus dapat menjalankan aplikasi Java di server web Anda. Ini adalah masalah yang harus Anda bicarakan dengan penyedia hosting Anda.

Klien yang menggunakan aplikasi web Anda tidak perlu menjalankan Java. Aplikasi PHP Anda dapat membuat kueri REST ke layanan SOLR dan memformat hasilnya dalam HTML. Seorang klien hanya melihat output HTML; tidak perlu tahu bahwa data tersebut berasal dari layanan yang diimplementasikan di Java.

Zend_Search_Lucene adalah implementasi PHP murni yang seharusnya bekerja secara identik dengan Apache Lucene. Solusi Zend bahkan menggunakan format file indeks yang identik. Jadi, dari segi penyimpanan, keduanya harus sama.

Saya menggunakan Java Lucene untuk mengindeks dump data StackOverflow (Oktober 2009). Saya mengindeks 1,5 juta baris, termasuk sekitar 1 pertunjukan data teks. Indeks Lucene adalah 1323 MB, sedangkan indeks MySQL FULLTEXT dari data yang sama hanya 466 MB.

Menggunakan SQL LIKE predikat sebagai pengganti solusi pengindeksan teks lengkap tentu saja tidak memerlukan ruang, karena bagaimanapun juga tidak dapat menggunakan indeks konvensional. Tetapi dalam pengujian saya menggunakan LIKE sekitar 200 kali lebih lambat dari Java Lucene, yang pada gilirannya sekitar 40% lebih lambat dari indeks MySQL FULLTEXT pada data yang sama.

Lihat presentasi terbaru saya tentang solusi pengindeksan teks lengkap dengan MySQL:

http://www.slideshare.net/billkarwin /practical-full-text-search-with-my-sql

Tidak mengherankan bahwa itu tidak dapat menandingi kinerja dan skalabilitas teknologi Java Lucene. Keuntungan PHP sebagai bahasa adalah meningkatkan efisiensi pengembangan, bukan efisiensi waktu proses.

pembaruan: Saya baru saja mencoba membuat indeks menggunakan Zend_Search_Lucene . Membuat indeks jauh lebih lambat dengan PHP dibandingkan dengan teknologi Java Lucene, jadi saya hanya mengindeks 10.000 dokumen. Ini membutuhkan waktu hampir 15 menit, yang berarti perlu waktu sekitar 36 jam untuk mengindeks seluruh koleksi. Bandingkan ini dengan Java Lucene, yang dalam pengujian saya mengindeks koleksi lengkap 1,5 juta dokumen dalam waktu kurang dari 7 menit.

Ukuran indeks yang saya buat dengan Zend_Search_Lucene adalah 8,75 MB. Mengekstrapolasi 150x ini, saya memperkirakan indeks penuh akan menjadi 1312,5 MB. Jadi saya menyimpulkan bahwa Zend_Search_Lucene membuat indeks dengan ukuran yang hampir sama dengan indeks yang dihasilkan oleh Java Lucene. Ini seperti yang diharapkan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ubah mesin default mysql menjadi innodb

  2. Tanggal Tidak Menyimpan di Mysql dari Formulir Pendaftaran Php

  3. Minggu dalam setahun selama berminggu-minggu dimulai dengan hari Sabtu

  4. Potong semua tabel di database MySQL yang cocok dengan pola nama

  5. Bagaimana cara membuat indeks DESC di MySQL?