5. Suche Go
Ergebnis 1
In Ergebnis 1 taucht der Suchbegriff auf...
Ergebnis 2
In Ergebnis 2 taucht der Suchbegriff auch auf ...
Ergebnis 3
… hier steht der Suchbegriff aus Ergebnis 3...
6. Suche Go
Ergebnis 1 SQL
In Ergebnis 1 taucht der Suchbegriff auf...
Ergebnis 2
In Ergebnis 2 taucht der Suchbegriff auch auf ...
Ergebnis 3
… hier steht der Suchbegriff aus Ergebnis 3...
8. Speaker
*
name
Talk
title *
content *
talkdate
Category
*
name
9. mysql> select * from talk where title like "%apache%";
+----+-------------------------------------------+---------+------------+
| id | title | content | talkdate |
+----+-------------------------------------------+---------+------------+
| 1 | Apache Karaf | ... | 2012-04-25 |
| 2 | Integration ganz einfach mit Apache Camel | ... | 2012-04-04 |
+----+-------------------------------------------+---------+------------+
2 rows in set (0.00 sec)
10. mysql> select * from talk t join talk_category tc join category c where t.id =
tc.talk and tc.category = c.id and (c.name like '%OSGi%' or t.title like
'%OSGi%' or t.content like '%OSGi%');
+----+-------------------------------------------+---------+------------
+------+----------+----+------+
| id | title | content | talkdate | talk | category | id | name |
+----+-------------------------------------------+---------+------------
+------+----------+----+------+
| 1 | Apache Karaf | ... | 2012-04-25 | 1 | 1 | 1 | OSGi |
| 2 | Integration ... | ... | 2012-04-04 | 2 | 1 | 1 | OSGi |
+----+-------------------------------------------+---------+------------
+------+----------+----+------+
2 rows in set (0.00 sec)
12. Suche Go
Ergebnis 1
In Ergebnis 1 taucht der Suchbegriff auf...
Ergebnis 2
In Ergebnis 2 taucht der Suchbegriff auch auf ...
Ergebnis 3
… hier steht der Suchbegriff aus Ergebnis 3...
13. File directory = new File(dir);
File[] textFiles = directory.listFiles(new TextFiles());
for (File probableMatch : textFiles) {
String text = readText(probableMatch);
if (text.matches(".*" + Pattern.quote(term) + ".*")) {
filesWithMatches.add(probableMatch.getAbsolutePath());
}
}
15. SQL
Suche Go
Ergebnis 1
In Ergebnis 1 taucht der Suchbegriff auf...
Ergebnis 2
In Ergebnis 2 taucht der Suchbegriff auch auf ...
Ergebnis 3
… hier steht der Suchbegriff aus Ergebnis 3...
16. Dokument 1
Die Stadt
liegt in den
Bergen.
Dokument 2
Vom Berg
kann man
die Stadt
sehen.
17. Dokument 1
Die 1
Die Stadt 1. Tokenization Stadt 1,2
liegt in den liegt 1
Bergen.
in 1
den 1
Bergen 1
Vom 2
Dokument 2
Berg 2
Vom Berg kann 2
kann man
die Stadt man 2
sehen. die 2
sehen 2
18. Dokument 1 die 1,2
Die Stadt 1. Tokenization stadt 1,2
liegt in den liegt 1
Bergen.
in 1
2. Lowercasing den 1
bergen 1
Dokument 2 vom 2
Vom Berg berg 2
kann man kann 2
die Stadt
sehen. man 2
sehen 2
19. Dokument 1 die 1,2
Die Stadt 1. Tokenization stadt 1,2
liegt in den
Bergen. liegt 1
in 1
2. Lowercasing
den 1
berg 1,2
Dokument 2
3. Stemming vom 2
Vom Berg
kann man kann 2
die Stadt man 2
sehen.
seh 2
21. ● Java-Bibliothek
● Invertierter Index
● Analyzer
● Query-Syntax
● Relevanz-Algorithmus
● KEIN Crawler
● KEIN Document-Extractor
23. ● Indexieren:
● Erstellen eines Documents
● Festlegen des Analyzers
● Indexieren über IndexWriter
● Suchen:
● Verwendung des selben Analyzers
● Parsen der Query mit QueryParser
● Auslesen über IndexSearcher/IndexReader
● Ausgabe über Document
24. Document
Field title
title Integration1
Name ganz einfach mit Apache Camel
Value Value 1
Field date
title Name 1 20120404
Value Value 1
Field title
speaker
title Integration1Christian Schneider
Name ganz einfach mit Apache Camel
Value Value 1
Document
Field title
title Integration1 Apache KarafApache Camel
Name ganz einfach mit Value 1
Value
Field date
title Name 1 20120425
Value Value 1
Field title
speaker
title Integration1Christian Schneider
Name ganz einfach mit Apache Camel
Value Value 1
Field title
speaker
title Integration1 Achim Nierbeck
Name ganz einfach mit Apache Camel
Value Value 1
25. ● Index
● ANALYZED
● NOT_ANALYZED
● NO
● Store
● YES/NO
● Feldtyp
● String, Numeric, Boolean
37. title:Apache AND speaker:schneyder~ AND date:[20120401 TO 20120430]
BooleanQuery
AND
TermQuery FuzzyQuery RangeQuery
title:apach speaker:schneyder date:[...]
38. title:Apache AND speaker:schneyder~ AND date:[20120401 TO 20120430]
BooleanQuery
AND
TermQuery FuzzyQuery RangeQuery
title:apach speaker:schneyder date:[...]
39. ● FilterQueries
● Ausschlusskriterium, kann gecacht werden
● Sortierung
● Boosting
● Indexing-Time
● Query-Time
40. score(q , d )=coord (q , d )∗queryNorm (q )∗∑ (tf (t , d )∗idf (t)2∗t.boost∗norm (t , d ))
t ∈q
41. Anzahl der Invers zu Anzahl Feldlänge,
Matches im Dokumente, die Index-
Dokument den Term enthalten Boost
score(q , d )=coord (q , d )∗queryNorm (q )∗∑ (tf (t , d )∗idf (t)2∗t.boost∗norm (t , d ))
t ∈q
Anzahl Term Query-
im Dokument Boost