Solr

959 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
959
On SlideShare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Solr

  1. 1. SOLR Giedrius Banaitis Adroiti Technologies
  2. 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ų bazesPaieškos variklis papildomai gali pasiūlyti - Plečiamumą - Reitingavimą pagal atitikimą - Įvairių duomenų šaltinių integravimą
  3. 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. 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. 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. 6. Kas naudojaIr daug daug kitų, visas sąrašas: http://wiki.apache.org/solr/PublicServers
  7. 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. 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. 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. 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. 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. 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. 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. 14. Demo• Laikrodžių katalogas• ASP.NET MVC 3 RC• SOLR
  15. 15. (Remove)Indeksavimas (2min)• Indeksavimo dokumentas• Indeksavimo kodas
  16. 16. (Remove)Bendra paieška (3min)
  17. 17. (Remove)Siaurinimas pagal aspektus (3min)
  18. 18. (Remove)Rašybos taisymas (2min)
  19. 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. 20. Kaip veikia trie* laukai [215-977] 2 4 9 21 25 47 91 97213 214 215 252 254 478 911 914 919 976 979
  21. 21. Multibranduoliai TomCat Solr Solr instance1 instance 2Core 1 Core 2 Core 1
  22. 22. Replikavimas
  23. 23. Konfigūruojama tarpinė atmintis• filterCache• queryResultCache• documentCache• User/Generic caches
  24. 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
  25. 25. Klausimai ir atsakymai

×