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