Solr serveris lietuviško teksto paieškai

2011-09-12 09:10

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. ;-)

Komentarai

Darius

Tomas -> Tomo

Emilis Dambauskas

Ačiū, pataisiau :-)

A

O kurioje vietoje yra Stemmer'is?

Emilis Dambauskas

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

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

Emilis Dambauskas

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ą :-)

A

Turiu omeny, kad solr'e saugomas tekstas yra " vilkaviškis " ir ieškant "vilkaviskis" neišmeta "vilkaviškis" rezultatų, o tik "vilkaviskis".

Žygis

Šveplam tekstui ieškoti/indeksuoti galima naudoti šitą filtrą http://goo.gl/WHmTu

Emilis Dambauskas

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.

Komentuoti šio įrašo nebegalima. Komentarų sistema išjungta.