際際滷

際際滷Share a Scribd company logo
SOLR
          Giedrius Banaitis
       Adroiti Technologies
Kas yra paie邸kos variklis?
Programin 眺ranga, kuri
    Gali sukurti indeks i邸 tekstins informacijos
    Atsakyti 眺 u転klausas, naudodama susikurt indeks

   Bet mes jau turime reliacines duomen迭 bazes

Paie邸kos variklis papildomai gali pasi笛lyti
   - Pleiamum
   - Reitingavim pagal atitikim
   - 町vairi迭 duomen迭 邸altini迭 integravim
Skirtumai nuo DB: paie邸ka
 Operuoja 転od転iais, ne eiluts dalimis (substring)
  -   貼od転i迭 ie邸ko bet kokia tvarka
  -   auto != automobilis, automatas
  -   I邸vestiniai 転od転iai(frazs)
  -   Rezultat迭 pasvrimas
  -   Grupavimas (faceting)
Skirtumai nuo DB: indeksavimas
 Indeksavimo procesas
     Konvertuojamas dokumentas
     I邸traukiamas tekstas ir meta duomenys
     Tekstas normalizuojamas
     Sura邸omas atvirk邸ias (invertuotas) indeksas
     Pvz.
        Dokumentas 1: Solr prane邸imas
        Dokumentas 2: NoSQL prane邸imas
       Indeksas:
              Solr-> 1
              Prane邸imas->1,2
              NoSQL->2
SOLR ir Lucene
 Lucene
   Java biblioteka paie邸kai ir indeksavimui
 Solr = Lucene
  + Web ssaja administravimui
  + HTTP API
  + tipizuoti laukai
  + nar邸ymas po aspektus (faceted browsing)
  + XML konfig笛ravimas, nereikalingas Java kodas
      + konfig笛ruojama tarpin atmintis (ke邸avimas)
      + replikavimas
Kas naudoja




Ir daug daug kit迭, visas sra邸as: http://wiki.apache.org/solr/PublicServers
Http API
 Visas bendravimas vyksta per Http:
    POSTinant XML dokumentus per HTTP (indeksuojant
     dokumentus)
       dar yra galimyb naudoti:
             Data Import Handler
             CSV
             SolrJ
             Apache Tika
    GETinant paie邸kos rezultatus kaip XML
       Arba
             JSON
             Python
             Ruby
             PHP
             t.t.
Pagrindins savybs (1)
 Atitikties valdymas (relevancy tuning)
   Atskir迭 lauk迭 koeficientai rezultat迭 formavime
      q=title:watch^2 description:watch
   Dvigubas indeksavimas su skirtingais analizatoriais
   貼od転i迭 atstumas
      q=text:gold watch~10
   Svorio suteikimas indeksuojant arba u転klausos
    metu
Pagrindins savybs (2)
 Filtravimas
   Standartinis, grie転ta sintaks
   DisMax, stipriai apkartytomis sintakss
    galimybmis
   Pilnas boolean logikos palaikymas, 邸ablonai, fuzzy
   Intervalai (dat迭, skaii迭, raid転i迭)
Pagrindins savybs (3)
 Aspektai (facets)
   Gra転inamas dokument迭 skaiius pagal kiekvien
    aspekt
   Galima naudoti aspektus paie邸kos rezultat迭
    siaurinimui
 Daugiau pana邸i迭
   Paie邸kos variklis pats nustato svarbias frazes ir
    pagal jas pateikia pana邸i迭 rezultat迭 眺 nurodytj眺
Pagrindins savybs (4)
 Ra邸ybos tikrinimas
   Pagal vartotojo 転odyn
   Pagal indeks
 Daugiakalb teksto analiz
   貼od転io suma転inimas iki bendros formos
    (vienaskaitos, 邸aknies)
      Keturios strategijos, Lucene-Hunspell palaiko lietuvi迭
       kalb
   Normalizavimas (latin 1 simboliai)
Pagrindins savybs (5)
 Paie邸kos termin迭 pary邸kinimas
 Geoerdvin paie邸ka
   &q=*:*&fq={!geofilt pt=45.15,-93.85 sfield=store d=5}

 R笛邸iavimas
Solr + .NET
 Nesunku pasira邸yti savo klient
 SolrSharp
    http://solrsharp.codeplex.com/
    Paskutin oficiali versija 2007 12 30
 SolrNet
      http://code.google.com/p/solrnet/
      Paskutin oficiali versija 2010 06 08
      Stipriai orientuojasi 眺 DI
      Pakankamai gerai padengtas unit testais
 SolrJS
    Para邸yta jQuery pagrindu
    Saugomo sumetimais, reikalingas ReadOnly handleris
Demo
 Laikrod転i迭 katalogas
 ASP.NET MVC 3 RC
 SOLR
(Remove)Indeksavimas (2min)
 Indeksavimo dokumentas
 Indeksavimo kodas
(Remove)Bendra paie邸ka (3min)
(Remove)Siaurinimas pagal aspektus
              (3min)
(Remove)Ra邸ybos taisymas (2min)
Tipizuoti laukai
 Laukai yra apra邸omi schema.xml
 Lauko tipas apra邸o kaip apdorojamas laukas
   Kaip frazs i邸skaidomos:
    tarpai, skyryba, raids, akcentai
   I邸vestiniai 転od転iai
   Standartiniai tipai: integer, float, date ir t.t. (trie*)
 Galima turti savo tipus, per SolrPlugins
 Poly, Dinaminiai, Copy laukai
Kaip veikia trie* laukai


                                   [215-977]



              2                       4                      9

      21                25           47              91                97

213   214   215   252        254     478       911   914   919   976        979
Multibranduoliai

           TomCat
                           Solr
   Solr instance1
                        instance 2

Core 1        Core 2        Core 1
Replikavimas
Konfig笛ruojama tarpin atmintis
   filterCache
   queryResultCache
   documentCache
   User/Generic caches
Prie邸paskutin skaidr
 Saugumas  viskas priklauso nuo J笛s迭
 Sharding  veikia i邸 dalies
   http://localhost:80/solr/select?shards=localhost:8
    0/solr,localhost:81/solr&q=watch
 Apache ManifoldCF
Klausimai ir atsakymai

More Related Content

Solr

  • 1. SOLR Giedrius Banaitis Adroiti Technologies
  • 2. Kas yra paie邸kos variklis? Programin 眺ranga, kuri Gali sukurti indeks i邸 tekstins informacijos Atsakyti 眺 u転klausas, naudodama susikurt indeks Bet mes jau turime reliacines duomen迭 bazes Paie邸kos variklis papildomai gali pasi笛lyti - Pleiamum - Reitingavim pagal atitikim - 町vairi迭 duomen迭 邸altini迭 integravim
  • 3. Skirtumai nuo DB: paie邸ka Operuoja 転od転iais, ne eiluts dalimis (substring) - 貼od転i迭 ie邸ko bet kokia tvarka - auto != automobilis, automatas - I邸vestiniai 転od転iai(frazs) - Rezultat迭 pasvrimas - Grupavimas (faceting)
  • 4. Skirtumai nuo DB: indeksavimas Indeksavimo procesas Konvertuojamas dokumentas I邸traukiamas tekstas ir meta duomenys Tekstas normalizuojamas Sura邸omas atvirk邸ias (invertuotas) indeksas Pvz. Dokumentas 1: Solr prane邸imas Dokumentas 2: NoSQL prane邸imas Indeksas: Solr-> 1 Prane邸imas->1,2 NoSQL->2
  • 5. SOLR ir Lucene Lucene Java biblioteka paie邸kai ir indeksavimui Solr = Lucene + Web ssaja administravimui + HTTP API + tipizuoti laukai + nar邸ymas po aspektus (faceted browsing) + XML konfig笛ravimas, nereikalingas Java kodas + konfig笛ruojama tarpin atmintis (ke邸avimas) + replikavimas
  • 6. Kas naudoja Ir daug daug kit迭, visas sra邸as: http://wiki.apache.org/solr/PublicServers
  • 7. Http API Visas bendravimas vyksta per Http: POSTinant XML dokumentus per HTTP (indeksuojant dokumentus) dar yra galimyb naudoti: Data Import Handler CSV SolrJ Apache Tika GETinant paie邸kos rezultatus kaip XML Arba JSON Python Ruby PHP t.t.
  • 8. Pagrindins savybs (1) Atitikties valdymas (relevancy tuning) Atskir迭 lauk迭 koeficientai rezultat迭 formavime q=title:watch^2 description:watch Dvigubas indeksavimas su skirtingais analizatoriais 貼od転i迭 atstumas q=text:gold watch~10 Svorio suteikimas indeksuojant arba u転klausos metu
  • 9. Pagrindins savybs (2) Filtravimas Standartinis, grie転ta sintaks DisMax, stipriai apkartytomis sintakss galimybmis Pilnas boolean logikos palaikymas, 邸ablonai, fuzzy Intervalai (dat迭, skaii迭, raid転i迭)
  • 10. Pagrindins savybs (3) Aspektai (facets) Gra転inamas dokument迭 skaiius pagal kiekvien aspekt Galima naudoti aspektus paie邸kos rezultat迭 siaurinimui Daugiau pana邸i迭 Paie邸kos variklis pats nustato svarbias frazes ir pagal jas pateikia pana邸i迭 rezultat迭 眺 nurodytj眺
  • 11. Pagrindins savybs (4) Ra邸ybos tikrinimas Pagal vartotojo 転odyn Pagal indeks Daugiakalb teksto analiz 貼od転io suma転inimas iki bendros formos (vienaskaitos, 邸aknies) Keturios strategijos, Lucene-Hunspell palaiko lietuvi迭 kalb Normalizavimas (latin 1 simboliai)
  • 12. Pagrindins savybs (5) Paie邸kos termin迭 pary邸kinimas Geoerdvin paie邸ka &q=*:*&fq={!geofilt pt=45.15,-93.85 sfield=store d=5} R笛邸iavimas
  • 13. Solr + .NET Nesunku pasira邸yti savo klient SolrSharp http://solrsharp.codeplex.com/ Paskutin oficiali versija 2007 12 30 SolrNet http://code.google.com/p/solrnet/ Paskutin oficiali versija 2010 06 08 Stipriai orientuojasi 眺 DI Pakankamai gerai padengtas unit testais SolrJS Para邸yta jQuery pagrindu Saugomo sumetimais, reikalingas ReadOnly handleris
  • 14. Demo Laikrod転i迭 katalogas ASP.NET MVC 3 RC SOLR
  • 15. (Remove)Indeksavimas (2min) Indeksavimo dokumentas Indeksavimo kodas
  • 19. Tipizuoti laukai Laukai yra apra邸omi schema.xml Lauko tipas apra邸o kaip apdorojamas laukas Kaip frazs i邸skaidomos: tarpai, skyryba, raids, akcentai I邸vestiniai 転od転iai Standartiniai tipai: integer, float, date ir t.t. (trie*) Galima turti savo tipus, per SolrPlugins Poly, Dinaminiai, Copy laukai
  • 20. Kaip veikia trie* laukai [215-977] 2 4 9 21 25 47 91 97 213 214 215 252 254 478 911 914 919 976 979
  • 21. Multibranduoliai TomCat Solr Solr instance1 instance 2 Core 1 Core 2 Core 1
  • 23. Konfig笛ruojama tarpin atmintis filterCache queryResultCache documentCache User/Generic caches
  • 24. Prie邸paskutin skaidr Saugumas viskas priklauso nuo J笛s迭 Sharding veikia i邸 dalies http://localhost:80/solr/select?shards=localhost:8 0/solr,localhost:81/solr&q=watch Apache ManifoldCF