Ë
    ÚÔ£jL  ã                   óð  — d Z ddlZddlZddlZddlZdZdZej                  D ]/  Zej                  d«      sŒ e
ej                  dd«      d   «      ZŒ1  ej                  ed¬«      Zej                  d	«       ej                  d
«       ej                  d«       ej                  «       Zej                  d«      j#                  «       d   Zej                  def«      j#                  «       d   Z edeefz  d¬«       d„ Zdd„ZeddcZZZ ej                  «       Z	 ej                  def«      j7                  «       Zesn©g ZeD ]>  \  ZZZ Z! ee«       ee «      z   ee!«      z  Z"e"sdhZ"ejG                  d„ e"D «       «       Œ@  ee«       ed   d   Ze e$e«      z  Ze e$e«      z  Zedz  dk  r# edeee ej                  «       ez
  fz  d¬«       ereek\  r edd¬«       nŒÍ ej                  «       ez
  Z%ej                  d«      j#                  «       d   Z&ej                  de&f«      j#                  «       d   Z' edeee%fz  d¬«        ede&e'fz  d¬«       ejQ                  «        y)u»  bigram æ°´ä½�çº¿å¢žé‡�è¡¥å½•ï¼ˆå†…å­˜å®‰å…¨ç‰ˆï¼‰

ä¸Ž rebuild_bigram_inc2.py çš„å·®å¼‚ï¼š
  æ—§: SELECT DISTINCT rowid FROM gov_bigramï¼ˆ8600 ä¸‡è¡Œå…¨æ‰«ï¼‰+
      LEFT JOIN + fetchall()ï¼ˆæŠŠå…¨éƒ¨ç¼ºå¤±è¡Œè¯»è¿›å†…å­˜ï¼‰
  æ–°: å�ªå�– max(rowid) æ°´ä½�çº¿ä¹‹ä¸Šçš„è¡Œï¼Œkeyset åˆ†æ‰¹ 200 æ�¡æµ�å¼�å¤„ç�†ï¼Œ
      å³°å€¼å†…å­˜ = ä¸€ä¸ªæ‰¹æ¬¡çš„ gramï¼ˆå‡ ç™¾ KBï¼‰
ç”¨æ³•: python3 bigram_backfill_wm.py [--limit N]   (--limit ä»…è°ƒè¯•ç”¨)
é    Nz/root/search.dbz--limit=ú=é   éx   )ÚtimeoutzPRAGMA journal_mode=WALzPRAGMA busy_timeout=120000zPRAGMA synchronous=NORMALz.SELECT COALESCE(MAX(rowid), 0) FROM gov_bigramz)SELECT COUNT(*) FROM gov_raw WHERE id > ?u'   æ°´ä½�çº¿ max(rowid)=%d | å¾…è¡¥ %d è¡ŒT)Úflushc                 ó  — | s
t        «       S | j                  «       }t        «       }t        j                  d|«      D ]D  }t	        |«      dk  rŒt        t	        |«      dz
  «      D ]  }|j                  |||dz    «       Œ ŒF |S )uZ   ä¸Ž rebuild_bigram_inc2.py å®Œå…¨å�Œå�£å¾„ï¼šè¿žç»­ä¸­æ–‡/æ•°å­—/å­—æ¯�æ®µå†…æ‰€æœ‰ 2-gramz[\u4e00-\u9fff0-9a-z]+é   r   )ÚsetÚlowerÚreÚfindallÚlenÚrangeÚadd)ÚtextÚtÚgramsÚsegÚis        úbigram_backfill_wm.pyÚextract_gramsr      s€   € áÜ‹uˆØ�
‰
‹€AÜ‹E€EÜ�z‰zÐ3°QÓ7ò $ˆÜˆs‹8�aŠ<ØÜ”s˜3“x !‘|Ó$ò 	$ˆAØ�I‰I�c˜!˜A ™E�lÕ#ñ	$ð$ð
 €Ló    c                 ó:  — t        |«      D ].  }	 t        j                  d| «       t        j	                  «         y y# t
        j                  $ rI}dt        |«      j                  «       v r(||dz
  k  r t        j                  d|dz   z  «       Y d }~Œˆ‚ d }~ww xY w)Nz;INSERT OR IGNORE INTO gov_bigram (rowid, gram) VALUES (?,?)TÚlockedr   é   F)r   ÚcÚexecutemanyÚconnÚcommitÚsqlite3ÚOperationalErrorÚstrr   ÚtimeÚsleep)ÚbatchÚretriesÚattemptÚes       r   Úinsert_batchr)   -   s‹   € Ü˜“>ò 	ˆð	Ü�M‰MÐWÐY^Ô_Ü�K‰KŒMÙð		ð øô ×'Ñ'ò 	Øœ3˜q›6Ÿ<™<›>Ñ)¨g¸À!¹Ò.CÜ—
‘
˜1 ¨!¡Ñ,Ô-ÜØûð		ús   �*>¾BÁ>BÂBÂBzlSELECT id, title, COALESCE(content,''), COALESCE(summary,'') FROM gov_raw WHERE id > ? ORDER BY id LIMIT 200Ú	__empty__c              #   ó,   K  — | ]  }t         |f–— Œ y ­w)N)Úrid)Ú.0Úgs     r   ú	<genexpr>r/   H   s   è ø€ Ò- !”c˜1”XÑ-ùs   ‚éÿÿÿÿiè  éÈ   u     %d/%d æ�¡, %d gram, %.0fsu   (--limit å‘½ä¸­ï¼Œå�œæ­¢)z-SELECT COALESCE(MAX(rowid),0) FROM gov_bigramu   å®Œæˆ�: %d æ�¡, %d gram, %.0fsu!   æ°´ä½�çº¿ -> %d | å‰©ä½™ç¼ºå�£ %d)é(   ))Ú__doc__r    r   Úsysr#   ÚDBÚLIMITÚargvÚ_aÚ
startswithÚintÚsplitÚconnectr   ÚexecuteÚcursorr   ÚfetchoneÚwmÚgapÚprintr   r)   ÚlastÚdoneÚtotal_gramsÚt0ÚfetchallÚrowsr%   r,   ÚtitleÚcontentÚsummaryr   Úextendr   ÚelapsedÚnew_wmÚremainÚclose© r   r   ú<module>rR      s¦  ðñ÷ × à€Ø€Ø
�(‰(ò )€BØ	‡}�}�ZÕ Ù�B—H‘H˜S !Ó$ QÑ'Ó(‰ð)ð €w‡��r 3Ô'€Ø ‡�Ð&Ô 'Ø ‡�Ð)Ô *Ø ‡�Ð(Ô )Ø‡K�KƒM€à‡Y�YÐ?Ó@×IÑIÓKÈAÑN€Ø‡i�iÐ;¸b¸UÓC×LÑLÓNÈqÑQ€Ù Ð/°2°s°)Ñ;À4Õ Hòóð ˜a Ð €€dˆKØ€T‡Y�Yƒ[€Ø
Ø�9‰9ð	:Ø<@¸7óDçDLÁHÃJð 	ñ ØØ€EØ(,ò .Ñ$ˆˆU�G˜WÙ˜eÓ$¡}°WÓ'=Ñ=ÁÈgÓ@VÑVˆÙØ �MˆEØ�‰Ñ- uÔ-Õ-ð	.ñ
 �ÔØ�‰8�A‰;€DØ‰C�‹IÑ€DØ‘3�u“:Ñ€KØˆd�{�SÒÙÐ+¨t°S¸+ÀyÀtÇyÁyÃ{ÐUWÑGWÐ.XÑXÐ`dÕeÙ�˜’ÙÐ)°Õ6Øð) ð, ˆ$�)‰)‹+˜Ñ
€Ø	
�‰ÐBÓ	C×	LÑ	LÓ	NÈqÑ	Q€Ø	
�‰Ð>ÀÀ	Ó	J×	SÑ	SÓ	UÐVWÑ	X€Ù Ð&¨$°¸WÐ)EÑEÈTÕ RÙ Ð)¨V°VÐ,<Ñ<ÀDÕ IØ ‡
�
…r   