SlideShare a Scribd company logo
SOLR
          Giedrius Banaitis
       Adroiti Technologies
Kas yra paieškos variklis?
Programinė įranga, kuri
   – Gali sukurti indeksą iš tekstinės informacijos
   – Atsakyti į užklausas, naudodama susikurtą indeksą

   Bet mes jau turime reliacines duomenų bazes

Paieškos variklis papildomai gali pasiūlyti
   - Plečiamumą
   - Reitingavimą pagal atitikimą
   - Įvairių duomenų šaltinių integravimą
Skirtumai nuo DB: paieška
• Operuoja žodžiais, ne eilutės dalimis (substring)
  -   Žodžių ieško bet kokia tvarka
  -   auto != automobilis, automatas
  -   Išvestiniai žodžiai(frazės)
  -   Rezultatų pasvėrimas
  -   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 sąsaja 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 sąrašas: http://wiki.apache.org/solr/PublicServers
Http API
• Visas bendravimas vyksta per Http:
   – POST‘inant XML dokumentus per HTTP (indeksuojant
     dokumentus)
      • dar yra galimybė naudoti:
          –   Data Import Handler
          –   CSV
          –   SolrJ
          –   Apache Tika
   – GET‘inant paieškos rezultatus kaip XML
      • Arba
          –   JSON
          –   Python
          –   Ruby
          –   PHP
          –   t.t.
Pagrindinės savybės (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
Pagrindinės savybės (2)
• Filtravimas
  – Standartinis, griežta sintaksė
  – DisMax, stipriai apkartytomis sintaksės
    galimybėmis
  – Pilnas boolean logikos palaikymas, šablonai, fuzzy
  – Intervalai (datų, skaičių, raidžių)
Pagrindinės savybės (3)
• Aspektai (facets)
  – Gražinamas dokumentų skaičius 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ų į nurodytąjį
Pagrindinės savybės (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)
Pagrindinės savybės (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 frazės išskaidomos:
    tarpai, skyryba, raidės, akcentai
  – Išvestiniai žodžiai
  – Standartiniai tipai: integer, float, date ir t.t. (trie*)
• Galima turėti 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

Viewers also liked

Jiwon- Animal Flying Machine
Jiwon- Animal Flying MachineJiwon- Animal Flying Machine
Jiwon- Animal Flying Machine
TISgrade56
 
Servicestack
ServicestackServicestack
Servicestack
Giedrius Banaitis
 
Youth Connection - Gatewayllen 2012
Youth Connection - Gatewayllen 2012Youth Connection - Gatewayllen 2012
Youth Connection - Gatewayllen 2012
gatewayl
 
Vmobile Business Presentation
Vmobile Business PresentationVmobile Business Presentation
Vmobile Business Presentation
Arell Miller Aviso
 
Sws lecture13
Sws lecture13Sws lecture13
Sws lecture13
sundarnu
 
Academic planning2011 12
Academic planning2011 12Academic planning2011 12
Academic planning2011 12
Nitu Chhabra
 
Bonjour French Film Festival - Runner Up Young Spikes Indonesia 2013
Bonjour French Film Festival - Runner Up Young Spikes Indonesia 2013Bonjour French Film Festival - Runner Up Young Spikes Indonesia 2013
Bonjour French Film Festival - Runner Up Young Spikes Indonesia 2013
teguhtriguna
 
Bio diversidade
Bio diversidadeBio diversidade
Bio diversidade
Inovatec JF
 
Proyecto Empleo Almeria: Nuevos Yacimientos de Empleo
Proyecto Empleo Almeria: Nuevos Yacimientos de Empleo Proyecto Empleo Almeria: Nuevos Yacimientos de Empleo
Proyecto Empleo Almeria: Nuevos Yacimientos de Empleo
Living Lab Guadalinfo
 
Revista Deusto nº 119 (verano - uda. 2013)
Revista Deusto nº 119 (verano - uda. 2013)Revista Deusto nº 119 (verano - uda. 2013)
Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...
Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...
Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...
SegInfo
 
A praia vera leda wilmalenicy
A praia vera leda wilmalenicyA praia vera leda wilmalenicy
A praia vera leda wilmalenicy
Leda25
 
Itinerari escultòric 2010
Itinerari escultòric 2010Itinerari escultòric 2010
Itinerari escultòric 2010Ana Blesa
 
explorArTIC 2013 - Brief
explorArTIC 2013 - BriefexplorArTIC 2013 - Brief
explorArTIC 2013 - Briefreaprender
 
Mais DIFERENTE que o DIFERENTE
Mais DIFERENTE que o DIFERENTEMais DIFERENTE que o DIFERENTE
Mais DIFERENTE que o DIFERENTE
Michele Silveira
 

Viewers also liked (17)

Jiwon- Animal Flying Machine
Jiwon- Animal Flying MachineJiwon- Animal Flying Machine
Jiwon- Animal Flying Machine
 
Servicestack
ServicestackServicestack
Servicestack
 
Youth Connection - Gatewayllen 2012
Youth Connection - Gatewayllen 2012Youth Connection - Gatewayllen 2012
Youth Connection - Gatewayllen 2012
 
Vmobile Business Presentation
Vmobile Business PresentationVmobile Business Presentation
Vmobile Business Presentation
 
Sws lecture13
Sws lecture13Sws lecture13
Sws lecture13
 
Academic planning2011 12
Academic planning2011 12Academic planning2011 12
Academic planning2011 12
 
Bonjour French Film Festival - Runner Up Young Spikes Indonesia 2013
Bonjour French Film Festival - Runner Up Young Spikes Indonesia 2013Bonjour French Film Festival - Runner Up Young Spikes Indonesia 2013
Bonjour French Film Festival - Runner Up Young Spikes Indonesia 2013
 
Bio diversidade
Bio diversidadeBio diversidade
Bio diversidade
 
bilkent_transcript_tulay
bilkent_transcript_tulaybilkent_transcript_tulay
bilkent_transcript_tulay
 
Proyecto Empleo Almeria: Nuevos Yacimientos de Empleo
Proyecto Empleo Almeria: Nuevos Yacimientos de Empleo Proyecto Empleo Almeria: Nuevos Yacimientos de Empleo
Proyecto Empleo Almeria: Nuevos Yacimientos de Empleo
 
Revista Deusto nº 119 (verano - uda. 2013)
Revista Deusto nº 119 (verano - uda. 2013)Revista Deusto nº 119 (verano - uda. 2013)
Revista Deusto nº 119 (verano - uda. 2013)
 
Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...
Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...
Utilizando padroes abertos para coleta de informacoes e assessment em ativos ...
 
A praia vera leda wilmalenicy
A praia vera leda wilmalenicyA praia vera leda wilmalenicy
A praia vera leda wilmalenicy
 
Itinerari escultòric 2010
Itinerari escultòric 2010Itinerari escultòric 2010
Itinerari escultòric 2010
 
งานนำเสนอ
งานนำเสนองานนำเสนอ
งานนำเสนอ
 
explorArTIC 2013 - Brief
explorArTIC 2013 - BriefexplorArTIC 2013 - Brief
explorArTIC 2013 - Brief
 
Mais DIFERENTE que o DIFERENTE
Mais DIFERENTE que o DIFERENTEMais DIFERENTE que o DIFERENTE
Mais DIFERENTE que o DIFERENTE
 

Solr

  • 1. SOLR Giedrius Banaitis Adroiti Technologies
  • 2. Kas yra paieškos variklis? Programinė įranga, kuri – Gali sukurti indeksą iš tekstinės informacijos – Atsakyti į užklausas, naudodama susikurtą indeksą Bet mes jau turime reliacines duomenų bazes Paieškos variklis papildomai gali pasiūlyti - Plečiamumą - Reitingavimą pagal atitikimą - Įvairių duomenų šaltinių integravimą
  • 3. Skirtumai nuo DB: paieška • Operuoja žodžiais, ne eilutės dalimis (substring) - Žodžių ieško bet kokia tvarka - auto != automobilis, automatas - Išvestiniai žodžiai(frazės) - Rezultatų pasvėrimas - 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 sąsaja 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 sąrašas: http://wiki.apache.org/solr/PublicServers
  • 7. Http API • Visas bendravimas vyksta per Http: – POST‘inant XML dokumentus per HTTP (indeksuojant dokumentus) • dar yra galimybė naudoti: – Data Import Handler – CSV – SolrJ – Apache Tika – GET‘inant paieškos rezultatus kaip XML • Arba – JSON – Python – Ruby – PHP – t.t.
  • 8. Pagrindinės savybės (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. Pagrindinės savybės (2) • Filtravimas – Standartinis, griežta sintaksė – DisMax, stipriai apkartytomis sintaksės galimybėmis – Pilnas boolean logikos palaikymas, šablonai, fuzzy – Intervalai (datų, skaičių, raidžių)
  • 10. Pagrindinės savybės (3) • Aspektai (facets) – Gražinamas dokumentų skaičius 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ų į nurodytąjį
  • 11. Pagrindinės savybės (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. Pagrindinės savybės (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 frazės išskaidomos: tarpai, skyryba, raidės, akcentai – Išvestiniai žodžiai – Standartiniai tipai: integer, float, date ir t.t. (trie*) • Galima turėti 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