Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Implementasi Full Textsearch pada Database

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Cargando en…3
×

Eche un vistazo a continuación

1 de 13 Anuncio

Implementasi Full Textsearch pada Database

Descargar para leer sin conexión

Ini juga dokumen pendukung untuk sebuah kementerian yang hendak mengimplementasikan Full Textsearch pada database existing. Dokumen ini mengambil contoh kasus implementasi Full Textsearch pada stackoverflow menggunakan database PG

Ini juga dokumen pendukung untuk sebuah kementerian yang hendak mengimplementasikan Full Textsearch pada database existing. Dokumen ini mengambil contoh kasus implementasi Full Textsearch pada stackoverflow menggunakan database PG

Anuncio
Anuncio

Más Contenido Relacionado

Más de Dony Riyanto (20)

Anuncio

Más reciente (20)

Implementasi Full Textsearch pada Database

  1. 1. Implementasi Full Text Search pada Database 24 November 2020 dipersiapkan oleh Dony Riyanto
  2. 2. Text Searching • Pencarian text pada database memiliki permasalahan khusus • Dibutuhkan solusi pencarian text yang lebih baik • Full text search adalah salah satu solusinya
  3. 3. Sampledata • StackOverflow.com Posts • Data dumpexported September 2009 • 1.2million tuples • ~850 MB
  4. 4. StackOverflowERdiagram
  5. 5. Performanceissue • LIKEwith wildcards: SELECT* FROMPosts WHEREbody LIKE ‘%postgresql%’ • POSIXregular expressions: SELECT* FROMPosts WHERE body ~ ‘postgresql’ time:91 sec time:105 sec
  6. 6. Why so slow? CREA TET ABLEtelephone_book ( full_nameVARCHAR(50) ); CREA TEINDEX name_idxON telephone_book (full_name); INSERTINTO telephone_book V ALUES (‘Riddle,Thomas’), (‘Thomas,Dean’);
  7. 7. Why so slow? SELECT* FROMtelephone_book WHEREfull_nameLIKE ‘Thomas%’ • Searchfor allwith lastname“Thomas” • Searchfor allwith first name“Thomas” SELECT* FROMtelephone_book WHERE full_nameLIKE ‘%Thomas’
  8. 8. Accuracyissue • Irrelevant or falsematching words ‘one’,‘money’,‘prone’,etc.: body LIKE‘%one%’ • Regularexpressionsin PostgreSQL support escapesfor word boundaries: body ~ ‘yoney’
  9. 9. FullTextSearch
  10. 10. PostgreSQLText-Search • SincePostgreSQL8.3 • TSVECTORto represent textdata • TSQUERYto represent searchpredicates • Special indexes
  11. 11. PostgreSQLT ext-Search: BasicQuerying SELECT* FROMPosts WHEREto_tsvector(title || ‘ ’ || body || ‘ ’ || tags) @@ to_tsquery(‘postgresql & performance’); text-search matching operator
  12. 12. PostgreSQLT ext-Search: BasicQuerying SELECT* FROMPosts WHEREtitle || ‘ ’ || body || ‘ ’ || tags @@ ‘postgresql &performance’; timewithnoindex:8min2 s e c
  13. 13. PostgreSQLT ext-Search: AddTSVECTORcolumn AL TERT ABLEPostsADDCOLUMN PostTextTSVECTOR; UPDATEPostsSETPostText= to_tsvector(‘english’, title || ‘ ’ || body ||‘ ’ || tags);

×