2011-09-12 Solr serveris lietuviško teksto paieškai

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

9 Responses to “Solr serveris lietuviško teksto paieškai”

  1. Darius rašė:

    Tomas -> Tomo

  2. A rašė:

    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 rašė:

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

          • A rašė:

            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.

  3. Žygis rašė:

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

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

My English blog about programming.