KąVeikiaValdžia.lt dokumentų paieškai naudoja galingą tekstų paieškos serverį — Apache Solr. Būtent šios technologijos dėka paieška tarp 60000 dokumentų (arba ~1.7 GB teksto) vyksta taip greitai.
Lietuviškų žodžių formas šis serveris atpažįsta dėka kodo sukurto Žygimanto Medelio, M. Petkevičiaus, Tomo Krilavičiaus.
Kadangi prisireikė šią technologiją panaudoti kitame projekte, o taip pat pastebėjau, jog kolegoms programuotojams sunku išmokti pasileisti ir naudoti Solr serverį, tai supakavau jį su visu lietuvių kalbos palaikymu ir padėjau viešam naudojimui į GitHub: emilis/solr-lt.
Pridėjau ir dokumentaciją pradedantiesiems… tiesa, darkyta anglų kalba.
Imkit, naudokit ir sėkmės jūsų darbuose!
P.S. Nepamirškit pasidalinti atgal pataisymais ir priminti man atnaujinti Solr versiją kai ji išeis.
Tomas -> Tomo
Ačiū, pataisiau
O kurioje vietoje yra Stemmer’is?
Stemmerio kodas:
https://github.com/zmedelis/ltlangpack/blob/master/snowball/lithuanian.sbl
Mano pagamintoje versijoje jis jau sukompiliuotas su Snowball’u, paskiau su Java ir įpakuotas į Solr bibliotekas:
./webapps/solr.war/WEB-INF/lib/lucene-analyzers…jar/org/tartarus/snowball/ext/LithuanianStemmer.class
Ačiū. Reikėjo man path’o iki LithuanianStemmer.class.
Beje, ką darai su ąčęėįš ir kt. simboliais – translit’ini prieš kišdamas į Solr ir translit’ini search’o query’į ar naudoji kažkokį filtrą (bent jau repozitorijoje esančiuose schema*.xml matau, kad nėra filtrų). O galbūt prisidėjęs turi pas save <filter class="solr.ASCIIFoldingFilterFactory"/?
P.S. Solr 3.4 released – http://mail-archives.apache.org/mod_mbox/www-announce/201109.mbox/%3CCAL8Pwka0ZWpYsyyH6VRdi6hqfZM+TJit3imLUetvA_7w8HeLEQ@mail.gmail.com%3E
Tai, kad turėtų veikti lietuviškos raidės be jokių “glušinimų”
POST’indamas į Solr nurodyk “Content-Type” headeriui charset’ą ir turėtų veikti.
Ačiū už info dėl 3.4 — teks eiti kompiliuoti naują versiją
Turiu omeny, kad solr’e saugomas tekstas yra ” vilkaviškis ” ir ieškant “vilkaviskis” neišmeta “vilkaviškis” rezultatų, o tik “vilkaviskis”.
Supakavau ir Solr 3.4. Senesnė versija prieinama per “Tags”.
Prašau toliau tokiems pranešimams naudoti GitHub — bus lengviau sekti ir atnaujinti informaciją.
Dėl šveplo teksto — galima pridėti filtrą po stemminimo, bet nėra garantijos, kad stemmeris vienodai apkarpys “vilkaviškis” ir “vilkaviskis” — siūlau paeksperimentuoti pačiam.
Beje, po naudojamų tipų perkonfigūravimo paprastai reikia perindeksuoti dokumentus.
Šveplam tekstui ieškoti/indeksuoti galima naudoti šitą filtrą http://goo.gl/WHmTu