m *Ec=@skdZdkZdklZdklZdklZdkl Z dk l Z l Z dk lZdklZd eefd YZd d d ddddddddddddddddddd d d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDf=ZhZxeD]Zeees5     cCs ||_dS(s pass in a mapping of stopwords and synonyms. Format is: {'word' : [syn1, syn2, ..., synx]} Vocabularies do not necesarily need to implement this if their splitters do not support stemming or stoping. N(RR(RR((R t set_stop_synUscCs9|ii|d}|djo|i|}n|S(s return the word id of 'word' N(RRtgettwordRtwidt assignWordId(RRR((R t getWordIdas  cCs|ii|dS(s> post-2.3.1b2 method, will not work with unconverted lexicons N(RRRRR(RR((R tgetWordkscCs|ii|o|i|Sny |i}WnMtj oAt}|_x,|iiD]\}}||||i||d|d|iid|ii d|ii SWn|i||SnXdS(s wrap the splitter tencodingt singlechart indexnumberst casefoldingN( twordsRRRR tastringR3R tsplitterSingleCharstsplitterIndexNumberstsplitterCasefolding(RR8R7R3((R Rs    cCs|S(s2 we don't want to modify the query cuz we're dumb N(tq(RR<((R t query_hooks(t__name__t __module__t__doc__RRR RRRR!tsetR"R RR/R1RR=(((R Rs         tamtiitiiitpertpotretatabouttabovetacrosstaftert afterwardstagaintagainsttalltalmosttalonetalongtalreadytalsotalthoughtalwaystamongtamongsttamoungsttamounttantandtanothertanytanyhowtanyonetanythingtanywaytanywheretaretaroundtastattbacktbetbecametbecausetbecometbecomestbecomingtbeentbeforet beforehandtbehindtbeingtbelowtbesidetbesidestbetweentbeyondtbilltbothtbottomtbuttbytcantcannottcanttcontcouldtcouldnttcrytdescribetdetailtdotdonetdowntduetduringteachtegteightteitherteleventelset elsewheretemptytenoughteventeverteveryteveryonet everythingt everywheretexcepttfewtfifteentfiftytfilltfindtfiretfirsttfivetfortformertformerlytfortytfoundtfourtfromtfronttfulltfurtherRtgivetgothadthasthasntthavethethencethertheret hereaftertherebythereinthereupontherstherselfthimthimselfthisthowthoweverthundredtitietiftintinctindeedtinteresttintotistittitstitselftkeeptlasttlattertlatterlytleasttlesstmadetmanytmaytmet meanwhiletmighttmilltminetmoretmoreovertmosttmostlytmovetmuchtmusttmytmyselftnametnamelytneithertnevert neverthelesstnexttninetnotnobodytnonetnoonetnortnottnothingtnowtnowheretoftofftoftentontoncetonetonlytontotortothertotherst otherwisetourtourst ourselvestouttovertowntperhapstpleasetpretputtrathertsametseetseemtseemedtseemingtseemstserioustseveraltshetshouldtshowtsidetsincetsinceretsixtsixtytsotsometsomehowtsomeonet somethingtsometimet sometimest somewheretstilltsuchttakettentthantthattthettheirtthemt themselvestthentthencettheret thereafterttherebyt thereforetthereint thereupontthesettheytthicktthintthirdtthistthosetthoughtthreetthrought throughouttthrutthusttottogetherttoottowardttowardsttwelvettwentyttwotuntundertuntiltuptupontustverytviatwastwetwelltweretwhattwhatevertwhentwhencetwhenevertwheret whereaftertwhereastwherebytwhereint whereupontwherevertwhethertwhichtwhiletwhithertwhotwhoevertwholetwhomtwhosetwhytwilltwithtwithintwithouttwouldtyettyoutyourtyourstyourselft yourselves(R@Rt Persistencet Persistentt AcquisitiontImplicittBTrees.OIBTreeRtBTrees.IOBTreeRtBTrees.IIBTreeR+t IITreeSett$Products.PluginIndexes.common.randidR&ttypesR)Rt stop_wordststop_word_dictRR(RRRRR)R|R~R&RRRR+R@R((R t?s"       -