Upload
jernej-virag
View
913
Download
3
Embed Size (px)
DESCRIPTION
Opis osnovne konfiguracije iskalnega pogona Solr z najboljšimi praksami za slovenščino. Priloga k predavanju v Kiberpipi.
Citation preview
SolrKvalitetno iskanje besedil na vaši spletni strani
Solr 2
Solr• Kaj in zakaj?
• Osnove iskanja vsebine
• Osnovna konfiguracija
• Jeziki in več jeder
• Osvetljevanje in grupiranje
28.1.2013
Solr 3
Iskanje po besedilihKako pa Google res dela?
28.1.2013
Solr 4
Iskanje po besedilih
28.1.2013
? ljubljana
!
Protesti se nadaljujejo v Ljubljani, Bohinju, Ajdovščini in Murski Soboti
5
Iskanje po besedilih
28.1.2013Solr Strip z http://www.xkcd.com/55/
• Počasno
• Nenaravno, nenatančno
6
Hitro iskanje
28.1.2013Solr
7
„Pravilno“ iskanje
28.1.2013Solr
ljubljana
Ljubljane
ljubljani
ljubljanski
Solr 8
„Pravilno“ iskanje
28.1.2013
Tokenizacija Normalizacija Krnjenje Kombiniranj
e
Solr 9
„Pravilno“ iskanje
28.1.2013
Tokenizacija Normalizacija Krnjenje Kombiniranje
Urad US-CERT je izjavil, da je »MD5 algoritem zlomljen in neprimeren za nadaljnjo uporabo«.
urad uscert izjavil md5 algoritem zlomljen neprimeren nadaljnjo uporabo
Solr 10
„Pravilno“ iskanje
28.1.2013
Tokenizacija Normalizacija Krnjenje Kombiniranj
e
urad uscert izjavil md5 algoritem zlomljen neprimeren nadaljnjo uporabo
urad uscert izjaviti md5 algoritem zlomljen neprimeren nadaljnji uporaba
11
„Pravilno“ iskanje
28.1.2013Solr
Tokenizacija Normalizacija Krnjenje Kombiniran
je
urad uscert izjaviti md5 algoritem zlomljen neprimeren nadaljnji uporaba
uradurad uscerturad uscert izjaviti
uscertuscert izjavitiuscert izjaviti md5
izjavitiizjaviti md5izjaviti md5 algoritem
…
12
Iskanje
28.1.2013Solr
Tokenizacija Normalizacija Krnjenje Kombiniranje
Indeksiranje
Tokenizacija Normalizacija Krnjenje Kombiniranje
Iskanje
?
Solr 13
Namestitev in uporabaOsnovna konfiguracija
28.1.2013
14
Namestitev
28.1.2013Solr
github.com/izacus/solr_example
15
Namestitev
28.1.2013Solr
Baza z eno samo tabelo!Shema in tipi definirani v schema.xml
16
Namestitev
28.1.2013Solr
• SOLR_HOME
o solrconfig.xml - konfiguracija vseh jedero news - jedro
• conf - shema in konfiguracija jedra• data - indeks in podatki• lib - morebitne knjižnice
17
Namestitev
24. 10. 2012Solr
schema.xmlDefinicija polj, tipov polj in parametrov procesiranja teksta
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters
18
Uporaba
24. 10. 2012Solr
/update{"add": {"doc" : {"id" : "849323", "naslov": "Naslov članka…", … }, "commit" : {}, "delete": {"id" : "3829382" }, "delete": {"query“ : "*:*" }}
19
Uporaba
24. 10. 2012Solr
/selectwt=json - json format, možni tudi drugiq=<poizvedba> - sama poizvedbafl=<polja> - polja za poizvedbostart=<začetek> - prva vrnjena vrstica (za paginacijo)rows=<št. vrstic> - število vseh vrstic (za paginacijo)sort=<polja> - sortiranje po poljihfq=<filter> - poizvedba za filtriranje
20
Namestitev
24. 10. 2012Solr
solrconfig.xmlURLji in privzete nastavitve za polja
Solr 21
Več jeder in jezikov
28.1.2013
22
Jedra
24. 10. 2012Solr
Samostojni indeksiVsi znotraj enega procesa
23
Jeziki
24. 10. 2012Solr
Dva pristopa1.) Za vsak jezik eno jedro2.) Dinamična polja
24
Jeziki
24. 10. 2012Solr
Solr
/slovenian /english
25
Jeziki
24. 10. 2012Solr
shards=<url,url,url>Poizvedba čez več (oddaljenih) jeder
26
Slovenščina
24. 10. 2012Solr
Lemmagenhttp://lemmatise.ijs.si/
Knjižnica za Solrhttps://bitbucket.org/mavrik/slovene_lemmatizer
27
Slovenščina
24. 10. 2012Solr
<charFilter class="solr.HTMLStripCharFilterFactory"/><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.ClassicFilterFactory" /><filter class="solr.WordDelimiterFilterFactory" preserveOriginal="1" /><filter class="solr.LowerCaseFilterFactory" /><filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true" /><filter class="solr.ASCIIFoldingFilterFactory" /><filter class="si.virag.solr.RdrLemmatizerFactory" dictionary="<pot_do_slovarjev>/lem-me-sl.bin" /><filter class="solr.ShingleFilterFactory" maxShingleSize="3"
outputUnigrams="true" />
28
Angleščina
24. 10. 2012Solr
<charFilter class="solr.HTMLStripCharFilterFactory"/><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.WordDelimiterFilterFactory" preserveOriginal="1" /><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.ASCIIFoldingFilterFactory"/><filter class="solr.EnglishPossessiveFilterFactory" /><filter class="solr.PorterStemFilterFactory" /><filter class="solr.ShingleFilterFactory" maxShingleSize="3"
outputUnigrams="true"/>
Solr 29
Osvetljevanje in grupiranje
Highlighting / Faceting
28.1.2013
30
Osvetljevanje
24. 10. 2012Solr
/selecthl=true - vklop osvetljevanjahl.fl=<polja> - polja za osvetlitevhl.fragsize=<št.znakov> - dolžina osvetljenega izsekahl.simple.pre=<značka> - začetek osvetlitvehl.simple.post=<značka> - konec osvetlitve
http://wiki.apache.org/solr/HighlightingParameters
31
Grupiranje
24. 10. 2012Solr
/selectfacet=true - vklop osvetljevanjafacet.field=<polja> - polja za osvetlitevfacet.limit=<omejitev> - omejitev števila vrednostifacet.mincount=<št> - najmanjše število pojavitev
http://wiki.apache.org/solr/SolrFacetingOverview
Solr 32
Nasveti• SOLR NI BAZA!!!!!
• Uporabljajte analizator v Solrju
• Solr nima varnostne konfiguracije, preverjajte dostop do APIja
• Poganjanjte na Oracle JVM, ne OpenJDK
• Za produkte uporabljajte WorldDelimiterFilterFactory za ločevanje po številkah
• Filtriranje stop-wordov je dvorezen meč
28.1.2013
Solr 3328.1.2013
?Jernej Virag
@jernejvhttp://www.virag.si