SlideShare a Scribd company logo
Informacijos
paieška
Trumpas įvadas į Apache Lucene
Mindaugas Žakšauskas
Vilnius Kaunas Java User Group
assert this != null
Kalbėsiu apie
● Probleminę sritį
● Informacijos paieškos teoriją
● Lucene
● Solr (jei liks laiko)
● ?
Who are we?
http://nlp.stanford.edu/IR-book/
Sukaposiu gabalais
(tokenization)
Dokumentas #1:
"The quick brown fox jumps over the lazy dog.”
Word the quick brown fox
Documents 1 1 1 1
Offsets 1[0] 1[4] 1[10] 1[16]
Sukaposiu gabalais
(tokenization) #2
Dokumentas #2:
"I saw a brown fox yesterday. It ran away quickly.”
Word the quick brown fox
Documents 1 1 1, 2 1, 2
Offsets 1[0] 1[4] 1[10], 2[8] 1[16], 2[13]
Stopwords
Anglų:
- artikeliai a, the
Lietuvių:
- prielinksniai: į, nuo
- ištiktukai: oi!
- ?
Quick| ⇒ quick
quick|ly ⇒ quick
Stemming, lowercasing
Apache Lucene
● ACID (+2 phase commit)
● NoSQL (rimtai!)
● Concurrency
● Java (.NET, Python, Ruby)
● Bendruomenė
● Plačiai naudojama
Ne caro laikų Lucene!
Indeksavimo greitis, Lucene v4
Sinonimai
● Vanduo - H2
O
● Reikia spec. žodyno (SynonymMap)
quick brown fox ⇒
"quick", "fast", "brown", "fox"
Fonetinis kodavimas
http://en.wikipedia.org/wiki/Metaphone
0BFHJKLMNPRSTWXY
Stephen Smith ⇒STFN SM0
Boosting (indexing, query)
Užklausos
● field: foo bar
● field: +foo -bar
● field: “foo bar”
● field: +“foo bar” AND blah
● field: f?o bar*
● field: foo~ bar~0.8
● date_field: [2000 TO 2001]
● field: (foo AND bar) OR bob
http://searchhub.org/dev/2011/12/28/why-not-and-or-and-not/
Rezultatų formulė
org.apache.lucene.search.similarities.TFIDFSimilarity
Finite state transducer
mop, moth, pop, star, stop, top
10 million Wikipedia index - 69Mb
Apache Lucene Informacijos paieška
Apache Lucene Informacijos paieška
Apache Lucene Informacijos paieška

More Related Content

More from Kaunas Java User Group

Eh cache in Kaunas JUG
Eh cache in Kaunas JUGEh cache in Kaunas JUG
Eh cache in Kaunas JUG
Kaunas Java User Group
 
Java 8 Stream API (Valdas Zigas)
Java 8 Stream API (Valdas Zigas)Java 8 Stream API (Valdas Zigas)
Java 8 Stream API (Valdas Zigas)
Kaunas Java User Group
 
Intro to Java 8 Closures (Dainius Mezanskas)
Intro to Java 8 Closures (Dainius Mezanskas)Intro to Java 8 Closures (Dainius Mezanskas)
Intro to Java 8 Closures (Dainius Mezanskas)
Kaunas Java User Group
 
Kaunas JUG#1: Intro (Valdas Zigas)
Kaunas JUG#1: Intro (Valdas Zigas)Kaunas JUG#1: Intro (Valdas Zigas)
Kaunas JUG#1: Intro (Valdas Zigas)
Kaunas Java User Group
 
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas Java User Group
 
Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)
Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)
Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)
Kaunas Java User Group
 

More from Kaunas Java User Group (6)

Eh cache in Kaunas JUG
Eh cache in Kaunas JUGEh cache in Kaunas JUG
Eh cache in Kaunas JUG
 
Java 8 Stream API (Valdas Zigas)
Java 8 Stream API (Valdas Zigas)Java 8 Stream API (Valdas Zigas)
Java 8 Stream API (Valdas Zigas)
 
Intro to Java 8 Closures (Dainius Mezanskas)
Intro to Java 8 Closures (Dainius Mezanskas)Intro to Java 8 Closures (Dainius Mezanskas)
Intro to Java 8 Closures (Dainius Mezanskas)
 
Kaunas JUG#1: Intro (Valdas Zigas)
Kaunas JUG#1: Intro (Valdas Zigas)Kaunas JUG#1: Intro (Valdas Zigas)
Kaunas JUG#1: Intro (Valdas Zigas)
 
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
 
Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)
Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)
Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)
 

Apache Lucene Informacijos paieška