Your SlideShare is downloading. ×
0
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
Český fulltext a sdílené slovníky
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Český fulltext a sdílené slovníky

527

Published on

Standardní implementace ispell slovníků v PostgreSQL má bohužel několik nevýhod co se CPU a paměti týká. Napsal jsem extension která umožňuje slovníky inicializovat jen jednou a sdílet je mezi …

Standardní implementace ispell slovníků v PostgreSQL má bohužel několik nevýhod co se CPU a paměti týká. Napsal jsem extension která umožňuje slovníky inicializovat jen jednou a sdílet je mezi spojeními.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
527
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Český fulltext a sdílené slovníky Prague PostgreSQL Developers Day 2012 Tomáš Vondra (tv@fuzzy.cz) lightning talk
  • 2. Kdo používá zabudovaný fulltext?
  • 3. SELECT id, nadpis FROM dokumenty WHERE fts_idx @@ to_tsquery(cs,hledám);
  • 4. snowball● algoritmická normalizace slov ● slovesa na infinitiv ● podstatná jména na 1. pád ● ...● super věc ● málo paměti ● rychlé odezvy
  • 5. Bohužel nefunguje pro češtinu :-( Okay
  • 6. ispell● založeno na slovníku ● sada pravidel (skloňování, časování) ● slovník (slovo + jak skloňovat)
  • 7. ispell● založeno na slovníku ● sada pravidel (skloňování, časování) ● slovník (slovo + jak skloňovat)● tři problémy ● per connection ● inicializace ● zabírá paměť ● … Actually...Its Not Okay
  • 8. inicializace● slovník se musí načíst a naparsovat ● CPU, I/O ● ~ přes vteřinu, podle systému ● … nic moc :-(● standardní řešení ● connection pool ● … ale nic není tak růžové
  • 9. CPU vs. RAM● krátká vs. dlouhá spojení ● oslíkovo dilema ● krátká spojení – opakovaná inicializace (CPU) ● dlouhá spojení – kopie statických dat (RAM)● 25 connections + 2 slovníky (cs + cs_ascii) 500 MB● standardně víc connections (100 ?)
  • 10. ispell vs. RAM● virtualizovaná prostředí● VPS● sdílené servery Tam všude je (často) nedostatek RAM.
  • 11. co s tím?Challenge Accepted
  • 12. shared_ispell● načítá slovníky do sdílené paměti ● jednorázová inicializace ● každý slovník uložen jen jednou● používá se stejně jako obyčejný ispell● paměť je nutno vyhradit předem● ne všechny slovníky
  • 13. shared_ispell API● info o paměti ● shared_ispell_mem_used() ● shared_ispell_mem_available()● slovníky / stop words ● shared_ispell_dicts() ● shared_ispell_stoplists() ● shared_ispell_reset()
  • 14. shared_ispellhttp://github.com/tvondra/shared_ispell http://pgxn.org/dist/shared_ispell/ ispell slovník (UTF-8)http://github.com/tvondra/ispell_czech

×