33
Solr Kvalitetno iskanje besedil na vaši spletni strani

Solr

Embed Size (px)

DESCRIPTION

Opis osnovne konfiguracije iskalnega pogona Solr z najboljšimi praksami za slovenščino. Priloga k predavanju v Kiberpipi.

Citation preview

Page 1: Solr

SolrKvalitetno iskanje besedil na vaši spletni strani

Page 2: Solr

Solr 2

Solr• Kaj in zakaj?

• Osnove iskanja vsebine

• Osnovna konfiguracija

• Jeziki in več jeder

• Osvetljevanje in grupiranje

28.1.2013

Page 3: Solr

Solr 3

Iskanje po besedilihKako pa Google res dela?

28.1.2013

Page 4: Solr

Solr 4

Iskanje po besedilih

28.1.2013

? ljubljana

!

Protesti se nadaljujejo v Ljubljani, Bohinju, Ajdovščini in Murski Soboti

Page 5: Solr

5

Iskanje po besedilih

28.1.2013Solr Strip z http://www.xkcd.com/55/

• Počasno

• Nenaravno, nenatančno

Page 6: Solr

6

Hitro iskanje

28.1.2013Solr

Page 7: Solr

7

„Pravilno“ iskanje

28.1.2013Solr

ljubljana

Ljubljane

ljubljani

ljubljanski

Page 8: Solr

Solr 8

„Pravilno“ iskanje

28.1.2013

Tokenizacija Normalizacija Krnjenje Kombiniranj

e

Page 9: Solr

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

Page 10: Solr

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

Page 11: Solr

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

Page 12: Solr

12

Iskanje

28.1.2013Solr

Tokenizacija Normalizacija Krnjenje Kombiniranje

Indeksiranje

Tokenizacija Normalizacija Krnjenje Kombiniranje

Iskanje

?

Page 13: Solr

Solr 13

Namestitev in uporabaOsnovna konfiguracija

28.1.2013

Page 15: Solr

15

Namestitev

28.1.2013Solr

Baza z eno samo tabelo!Shema in tipi definirani v schema.xml

Page 16: Solr

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

Page 17: Solr

17

Namestitev

24. 10. 2012Solr

schema.xmlDefinicija polj, tipov polj in parametrov procesiranja teksta

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters

Page 18: Solr

18

Uporaba

24. 10. 2012Solr

/update{"add": {"doc" : {"id" : "849323", "naslov": "Naslov članka…", … }, "commit" : {}, "delete": {"id" : "3829382" }, "delete": {"query“ : "*:*" }}

Page 19: Solr

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

Page 20: Solr

20

Namestitev

24. 10. 2012Solr

solrconfig.xmlURLji in privzete nastavitve za polja

Page 21: Solr

Solr 21

Več jeder in jezikov

28.1.2013

Page 22: Solr

22

Jedra

24. 10. 2012Solr

Samostojni indeksiVsi znotraj enega procesa

Page 23: Solr

23

Jeziki

24. 10. 2012Solr

Dva pristopa1.) Za vsak jezik eno jedro2.) Dinamična polja

Page 24: Solr

24

Jeziki

24. 10. 2012Solr

Solr

/slovenian /english

Page 25: Solr

25

Jeziki

24. 10. 2012Solr

shards=<url,url,url>Poizvedba čez več (oddaljenih) jeder

Page 26: Solr

26

Slovenščina

24. 10. 2012Solr

Lemmagenhttp://lemmatise.ijs.si/

Knjižnica za Solrhttps://bitbucket.org/mavrik/slovene_lemmatizer

Page 27: Solr

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" />

Page 28: Solr

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"/>

Page 29: Solr

Solr 29

Osvetljevanje in grupiranje

Highlighting / Faceting

28.1.2013

Page 30: Solr

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

Page 31: Solr

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

Page 32: Solr

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

Page 33: Solr

Solr 3328.1.2013

?Jernej Virag

@jernejvhttp://www.virag.si