SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Einführung in Solr
ideenplanet GmbH
Was ist eine Suchmaschine?
Dokumente Abfragen
2
Suchmaschine
n-index
Was ist ein Index?
T1
was ist los
3
T2
was ist das
T3
das ist ein fisch
Indexierung
das {(2, 3), (3, 1)}
ein {(3, 3)}
fisch {(3, 4)}
ist {(1, 2), (2, 2), (3, 2)}
was {(1, 1), (2, 1)}
Ein Beispielabfrage 4
ANDwas ist
{1, 2} ∩ {1, 2, 3}
{1, 2}
Solr Architektur 5
Admin
Interface
Request Servlet
Request
Handler
Response
Writer
standard edismax json xml
Update
Servlet
Solr Core
Config – Schema – Analysis – Caching etc.
Lucene
Solr Core 6
Core
solrconfig.xml
schema.xml
types
class
analyzer
fields
name
type
indexed
stored
required
multivalued
Schema: Felder 7
<field name="content“
type="wildcardField"
indexed="true" stored="true“
required="true"
multiValued="false" />
<field name="weight" type="tint"
indexed="true" stored="true"
required="true"
multiValued="false" />
Schema: Typen 8
<fieldType name="wildcardField"
class="solr.TextField"
positionIncrementGap="100">
<analyzer>
<tokenizer
class="solr.KeywordTokenizerFactory"/>
<filter
class="solr.LowerCaseFilterFactory" />
<filter
class="solr.GermanNormalization
FilterFactory" />
</analyzer>
</fieldType>
Vielen Dank!
johannes.stiehler@ideenpla.net

Weitere ähnliche Inhalte

Was ist angesagt?

Finding attacks with these 6 events
Finding attacks with these 6 eventsFinding attacks with these 6 events
Finding attacks with these 6 eventsMichael Gough
 
Working with Deeply Nested Documents in Apache Solr: Presented by Anshum Gupt...
Working with Deeply Nested Documents in Apache Solr: Presented by Anshum Gupt...Working with Deeply Nested Documents in Apache Solr: Presented by Anshum Gupt...
Working with Deeply Nested Documents in Apache Solr: Presented by Anshum Gupt...Lucidworks
 
Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)
Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)
Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)Mark Thalib
 
MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema DesignMongoDB
 
Tutorial on developing a Solr search component plugin
Tutorial on developing a Solr search component pluginTutorial on developing a Solr search component plugin
Tutorial on developing a Solr search component pluginsearchbox-com
 
Memory Forensics for IR - Leveraging Volatility to Hunt Advanced Actors
Memory Forensics for IR - Leveraging Volatility to Hunt Advanced ActorsMemory Forensics for IR - Leveraging Volatility to Hunt Advanced Actors
Memory Forensics for IR - Leveraging Volatility to Hunt Advanced ActorsJared Greenhill
 
Sharpening your Threat-Hunting Program with ATTACK Framework
Sharpening your Threat-Hunting Program with ATTACK FrameworkSharpening your Threat-Hunting Program with ATTACK Framework
Sharpening your Threat-Hunting Program with ATTACK FrameworkMITRE - ATT&CKcon
 
Elastic stack Presentation
Elastic stack PresentationElastic stack Presentation
Elastic stack PresentationAmr Alaa Yassen
 
Investigating server logs
Investigating server logsInvestigating server logs
Investigating server logsAnimesh Shaw
 
XML Schema
XML SchemaXML Schema
XML Schemayht4ever
 
Operadores para json en pg 9.2
Operadores para json en pg 9.2Operadores para json en pg 9.2
Operadores para json en pg 9.2Anthony Sotolongo
 
React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작Taegon Kim
 
Introduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter NotebooksIntroduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter NotebooksEueung Mulyana
 
Episode 4 - Introduction to SOQL in Salesforce
Episode 4  - Introduction to SOQL in SalesforceEpisode 4  - Introduction to SOQL in Salesforce
Episode 4 - Introduction to SOQL in SalesforceJitendra Zaa
 
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 EditionGoing Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 EditionSoroush Dalili
 

Was ist angesagt? (20)

Finding attacks with these 6 events
Finding attacks with these 6 eventsFinding attacks with these 6 events
Finding attacks with these 6 events
 
Working with Deeply Nested Documents in Apache Solr: Presented by Anshum Gupt...
Working with Deeply Nested Documents in Apache Solr: Presented by Anshum Gupt...Working with Deeply Nested Documents in Apache Solr: Presented by Anshum Gupt...
Working with Deeply Nested Documents in Apache Solr: Presented by Anshum Gupt...
 
Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)
Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)
Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)
 
MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema Design
 
Tutorial on developing a Solr search component plugin
Tutorial on developing a Solr search component pluginTutorial on developing a Solr search component plugin
Tutorial on developing a Solr search component plugin
 
Memory Forensics for IR - Leveraging Volatility to Hunt Advanced Actors
Memory Forensics for IR - Leveraging Volatility to Hunt Advanced ActorsMemory Forensics for IR - Leveraging Volatility to Hunt Advanced Actors
Memory Forensics for IR - Leveraging Volatility to Hunt Advanced Actors
 
Sharpening your Threat-Hunting Program with ATTACK Framework
Sharpening your Threat-Hunting Program with ATTACK FrameworkSharpening your Threat-Hunting Program with ATTACK Framework
Sharpening your Threat-Hunting Program with ATTACK Framework
 
Json
JsonJson
Json
 
Elastic stack Presentation
Elastic stack PresentationElastic stack Presentation
Elastic stack Presentation
 
Pandas
PandasPandas
Pandas
 
Investigating server logs
Investigating server logsInvestigating server logs
Investigating server logs
 
XML Schema
XML SchemaXML Schema
XML Schema
 
Operadores para json en pg 9.2
Operadores para json en pg 9.2Operadores para json en pg 9.2
Operadores para json en pg 9.2
 
React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작
 
Introduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter NotebooksIntroduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter Notebooks
 
ELK introduction
ELK introductionELK introduction
ELK introduction
 
Episode 4 - Introduction to SOQL in Salesforce
Episode 4  - Introduction to SOQL in SalesforceEpisode 4  - Introduction to SOQL in Salesforce
Episode 4 - Introduction to SOQL in Salesforce
 
Apache Solr
Apache SolrApache Solr
Apache Solr
 
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 EditionGoing Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
 
DTD
DTDDTD
DTD
 

Ähnlich wie Einführung in Suchmaschinen und Solr

nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins
nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins
nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins Christian Kauhaus
 
Python crash-kurs
Python crash-kursPython crash-kurs
Python crash-kursklausbremer
 
Schnell, schneller, Quarkus!!
Schnell, schneller, Quarkus!!Schnell, schneller, Quarkus!!
Schnell, schneller, Quarkus!!gedoplan
 
Funktionales Programmieren mit Clojure
Funktionales Programmieren mit ClojureFunktionales Programmieren mit Clojure
Funktionales Programmieren mit ClojureDr. Christian Betz
 
C Sharp Einfuehrung Teil 2
C Sharp Einfuehrung Teil 2C Sharp Einfuehrung Teil 2
C Sharp Einfuehrung Teil 2DraphonyGames
 
Warum 'ne Datenbank, wenn wir Elasticsearch haben?
Warum 'ne Datenbank, wenn wir Elasticsearch haben?Warum 'ne Datenbank, wenn wir Elasticsearch haben?
Warum 'ne Datenbank, wenn wir Elasticsearch haben?Jodok Batlogg
 

Ähnlich wie Einführung in Suchmaschinen und Solr (10)

Relevantes schneller finden – mit-Lucene und Solr
Relevantes schneller finden – mit-Lucene und SolrRelevantes schneller finden – mit-Lucene und Solr
Relevantes schneller finden – mit-Lucene und Solr
 
Oracle TEXT
Oracle TEXTOracle TEXT
Oracle TEXT
 
nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins
nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins
nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins
 
Python crash-kurs
Python crash-kursPython crash-kurs
Python crash-kurs
 
Schnell, schneller, Quarkus!!
Schnell, schneller, Quarkus!!Schnell, schneller, Quarkus!!
Schnell, schneller, Quarkus!!
 
Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1
 
Funktionales Programmieren mit Clojure
Funktionales Programmieren mit ClojureFunktionales Programmieren mit Clojure
Funktionales Programmieren mit Clojure
 
C Sharp Einfuehrung Teil 2
C Sharp Einfuehrung Teil 2C Sharp Einfuehrung Teil 2
C Sharp Einfuehrung Teil 2
 
Pyparsing
PyparsingPyparsing
Pyparsing
 
Warum 'ne Datenbank, wenn wir Elasticsearch haben?
Warum 'ne Datenbank, wenn wir Elasticsearch haben?Warum 'ne Datenbank, wenn wir Elasticsearch haben?
Warum 'ne Datenbank, wenn wir Elasticsearch haben?
 

Einführung in Suchmaschinen und Solr

Hinweis der Redaktion

  1. Woran erinnert euch das? => DB Was ist der wesentliche Unterschied zu Datenbanken? Atomic Consistent Independent Durable Was davon hat auch eine Suchmaschine? Keine Transaktionen bzw. nur halb, kein Rollback Keine unmittelbare Konsistenz bei verteilten Systemen Keine Relationen, also z.B. auch keine joins => Denormalisierung Hohe Lesegeschwindigkeit Schreiben ist teuer Ranking Optimierte unscharfe und Teilstringsuche Dokumentenvorverarbeitung Boolesche Abfragesprachen Ist ein Suchmaschinenindex das Gleiche wie ein Datenbankindex? B-Tree vs. Inverted Index
  2. eine Liste der Wörter in allen Dokumenten mit einem Verweis auf das dazugehörige Dokument und die lokale Position dort welche Wörter sind wahrscheinlich später unwichtig, welche wichtig? => tf / idf wozu braucht man die lokale Position der Wörter? Ranking (first-occ), Phrasensuche, Highlighting
  3. Wieder Verwandtschaft zu Datenbanken: Abfragesprache hat eine mengentheoretische mathematische Entsprechung Ist ein Dokument ein besserer Treffer als das andere? Die beteiligten Mengen können riesig sein, deshalb werden sie teilweise nach Möglichkeit gecacht.
  4. Solr Core speichert Dokumente, aufgeteilt auf Felder (z.B. eines für den Titel, eines für den Inhalt, eines für die Kategorie) Besonderheit: dynamic fields Analyzer: beschreiben die Behandlung des Feldes bei der Indexierung und der Query bei der Abfrage => muss zusammenpassen, z.B. lowercase, Umlautnormalisierung, Tokenisierung (untokenisiert vs. tokenisiert)
  5. Für Autocomplete nur zwei Felder: Inhalt und Gewicht
  6. Was lernen wir über das Feld „content“? Inhaltsfeld ist untokenisiert, lowercase und mit normalisierten Umlauten