SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
Apache Solr als Enterprise
    Search Plattform
Markus Klose - SHI
• Projektmanagement
• Requirements Engineering
• Certified Solr Trainer

• Enterprise Solution
• Infrastruktursoftware
• Beratung / Implementierung
Agenda

•   Enterprise Search
•   Solr Basics
•   Herausforderungen & Lösungen
•   Ausblicke
Enterprise Search


85% aller Firmen haben auf weniger als
50% aller ihrer Daten Zugriff (Google)
Enterprise Search
Enterprise Search mit Solr
• Open Source vs. Kommerziell
• Solr
  – Relevanz-Algorithmus (TF-IDF)
  – Kein Vendor-Lock
  – Zugriff auf Source Code
  – Aktive Community
  – Keine Lizenzgebühren / Kosten
  – Performance
Solr Basics
• Solr …
  – … Framework für Such Applikationen
  – … nutzt Lucene
  – … Infrastruktur (Cache, Analyzer etc.)
  – … konfigurierbar (customizing)
  – … läuft in allen gängigen Servlet
    Containern
  – … aktuelle Version 3.6
Solr Basics

      • Solr Architektur
        –   Konfigurationen
        –   RequestHandler
        –   ResponseWriter
        –   UpdateHandler
        –   ReplicationHandler
        –   ….
Solr Basics
Konfiguration
• solr.xml
  – Konfiguration meherer Cores
• solrconfig.xml
  – Handler / SearchComponents etc.
  – Caching / Index Settings
• schema.xml
  – Felder / Typen / Analyze
Solr Basics
HTTP Requests
• Indexierung
  – http://host:8983/solr/update/csv?stream.file=data.csv&strea
    m.contentType=text/plain;charset=utf-8

• Suche
  – http://host:8983/solr/select?q=baseball&fq=type:pdf&sort=titl
    e asc

• Administration (SWAP)
  – http://host:8983/solr/admin/cores?action=SWAP&core=live&
    other=test
Solr Basics
Solr Ökosystem
  – Hadoop: Verteiltes Dateisystem
  – Mahout: Data-Mining
  – Tika: Metadaten Indexierung
  – Nutch: Web Crawler
  – ManifoldCF: Repository Connector
  – Pypes – Verarbeitungs Pipeline (Python)
  – RabbitMQ - Messaging System
Herausforderungen
•   Anbindung versch. Datenquellen
•   Verteilte / heterogene Systeme
•   Berechtigungen
•   Relevanz / Precision & Recall
•   Mehrsprachigkeit
•   Einheitliche Suche
•   etc.
Herausforderungen
Anbindung verschiedener Datenquellen

•   Indexierung - Solr
•   Indexierung - DataImportHandler
•   Indexierung - Clients
•   Indexierung - externe Tools
Indexierung - Solr
Indexierung - DIH
• Bestandteile
  – DataSource
  – EntityProcessor
  – Transformator
• Use Cases
  – Datenbanken
  – Feeds (RSS/ATOM) & XML Dateien
  – Rich Content
  – Mail Server
Indexierung – Clients
•   Java (SolrJ)   Apache Solr PHP Client
•   JavaScript
•   PHP
•   Ruby
•   C# (SolrNet)
•   Python
Indexierung – externe Tools
• Nutch
• Heritrix
• ManifoldCF
  – … Sharepoint, Documentum …
• Google Connector Framework
Herausforderungen
Verteilte Systeme / Skalierbarkeit

• Replikation
• Sharding
• Unique IDs
Basisarchitektur
Indexierung


              • Eine Instanz übernimmt
    Solr
                sowohl die Indexierung
                als auch die Suche
  Suche
Indexierung
Replication
• Hohes Volumen an
  Suchanfragen                          Master




• 1 Master mit N Slaves
                              Slave 1            Slave2



• Delta Replikation möglich
• Konfigurationsdateien
  können repliziert werden
                                        Suche
Master-Slave-Konfiguration
Sharding
 Indexierung
                    • Verteilung von großen
                      Datenmengen
Shard 1   Shard 2

                    • Solr sucht über alle
                      Shards & fasst die
                      Ergebnisse zusammen

   Searching
                    • Kein globaler TF-IDF
Sharding & Replication                 Indexierung

• Flexibles Szenario

                                     Master 1       Master 2
• Große Datenmengen und
  hohes Aufkommen von
  Suchanfragen
                          Slave 11   Slave 12       Slave 21   Slave 22




                                                Suche
Unique IDs
• Update / Deletes / Verteilte Systeme
• Solr FieldType solr.UUIDField
• Basistypen nutzen

• Typische Fehler
  – ID nicht einzigartig -> weniger im Index
  – ID nicht reproduzierbar -> verschiedene
    Versionen im Index
Herausforderungen
Heterogene Systeme / Mehrsprachigkeit

• Deduplikation
• Solr - Konfiguration
   – Dismax/eDismax
• Schema - Konfiguration
   – Analyse (Tokenizer / Filter)
   – Dynamische Felder
   – Copy Fields
Deduplikation
• Doppelte Dokumente im Index
• schema.xml

• solrconfig.xml
Dismax / eDismax
• DisMax – Disjunction Maximum

• extrem variabel einsetzbar
• versucht immer etwas zurückzuliefern
Analyse
• Feldzentrische Verarbeitung des
  Inhalts
  – Tokenizer
  – Tokenfilter
  – CharFilter
Schema - Konfiguration
• Dynamische Felder

• Copy Field

• Default Werte
Herausforderungen
Einheitliche Suche / Berechtigung

•   AutoSuggest
•   Facetten
•   DidYouMean
•   Clustering / Field Collapsing
•   Berechtigungen
AutoSuggest
• Vorschlag des zu suchenden Begriffs
Facetten
• Gruppierung der Ergebnismenge
• Navigationselement
DidYouMean
• Wortvorschlag, basierend auf dem
  Index
• „Meinten Sie“ - Fuktionalitäten
Clustering
• Alternative Darstellung der Trefferliste
Search - Berechtigungen
• Kein Standard
• Beispiel: ActiveDirectory bei SHI
  – Index: zusätzliche Information
  – Suche: zusätzliche FilterQuery

                       Auth.jsp
                           fq=           q=jax&fq=…
          q=jax
                    allow:“12-33-45-7“                Solr
                            AND
         Response                         Response
                    -deny:“12-33-45-7“
Herausforderungen
Relevanz / Precision & Recall

•   TF-IDF
•   Sortierung / Function Queries
•   Boosting
•   Syntax
TF-IDF
• Scoring in 2 Phasen
  – Boolsche Modell
  – Vector Space Modell


• Relevanzalgorithmus
Sortierung / Function Queries
• Sortierung
  – default ist Score
  – Konstantes Scoring bei *:*, Range und fq
  – Beispiel: sort=titel asc,author desc


• Function Queries
  – Beeinflussung des Ranking (bf/boost
    Parameter oder sort)
  – Beispiel: recip(ms(NOW,mydatefield),3.16e-11,1,1)
Syntax
•   Query -> q
•   FilterQuery ->fq
•   Boolean Operatoren -> OR, AND, NOT, +, -
•   Phrasen -> “Harrison Ford”~5

•   Wildcard -> fi?m, film*
•   Fuzzy -> Hale*0.9
•   Boost -> q=star OR trek^4.0
•   Range -> preis:[1 TO 10] oder preis:{1 TO 10}
Ausblicke
• Solr Cloud
  – Verteilte Suche mit zentraler Konfiguration


• Near Real Time Search
  – Alternative Commit Strategie


• JOIN
  – „Verknüpfung“ von Dokumenten
Weiterführende Informationen
• Solr
  – Wiki (http://wiki.apache.org/solr)
  – Jira (https://issues.apache.org/jira/browse/SOLR)
  – Mailinglist (http://lucene.apache.org/solr/mailing_lists.html)


• Websites
  – SHI (http://www.shi-gmbh.com/blog)
  – Lucid Imagination (http://www.lucidimagination.com)
Demo / Q & A


Vielen Dank für Ihr Interesse

Contenu connexe

En vedette

Unidad 5. sonidos en flash
Unidad 5. sonidos en flashUnidad 5. sonidos en flash
Unidad 5. sonidos en flash
Miros Castro
 
Autoduplicación del adn 2012
Autoduplicación del adn 2012Autoduplicación del adn 2012
Autoduplicación del adn 2012
merchealari
 
Caza del tesoro
Caza del tesoroCaza del tesoro
Caza del tesoro
Aline GA
 

En vedette (19)

Blu-ray, DVD- und CD-Neuheiten November 2013 Nr. 1 (Im Vertrieb der NAXOS Deu...
Blu-ray, DVD- und CD-Neuheiten November 2013 Nr. 1 (Im Vertrieb der NAXOS Deu...Blu-ray, DVD- und CD-Neuheiten November 2013 Nr. 1 (Im Vertrieb der NAXOS Deu...
Blu-ray, DVD- und CD-Neuheiten November 2013 Nr. 1 (Im Vertrieb der NAXOS Deu...
 
MedConf 2013 - Der Treffpunkt der Medizintechnik-Fachwelt
MedConf 2013 - Der Treffpunkt der Medizintechnik-FachweltMedConf 2013 - Der Treffpunkt der Medizintechnik-Fachwelt
MedConf 2013 - Der Treffpunkt der Medizintechnik-Fachwelt
 
Unidad 5. sonidos en flash
Unidad 5. sonidos en flashUnidad 5. sonidos en flash
Unidad 5. sonidos en flash
 
2 Celso Duran / Temuco
2 Celso Duran / Temuco2 Celso Duran / Temuco
2 Celso Duran / Temuco
 
Protocolo arp
Protocolo arpProtocolo arp
Protocolo arp
 
Ap 142 laudo 2828 separado
Ap 142 laudo 2828 separadoAp 142 laudo 2828 separado
Ap 142 laudo 2828 separado
 
Schuhkollektion Frühling/Sommer 2014
Schuhkollektion Frühling/Sommer 2014Schuhkollektion Frühling/Sommer 2014
Schuhkollektion Frühling/Sommer 2014
 
Fin del siglo y de un régimen
Fin del siglo y de un régimenFin del siglo y de un régimen
Fin del siglo y de un régimen
 
Bases teã³ricas de las pruebas de hipã³tesis
Bases teã³ricas de las pruebas de hipã³tesisBases teã³ricas de las pruebas de hipã³tesis
Bases teã³ricas de las pruebas de hipã³tesis
 
Presentación1
Presentación1Presentación1
Presentación1
 
Applikationsentwicklung für Android
Applikationsentwicklung für AndroidApplikationsentwicklung für Android
Applikationsentwicklung für Android
 
Blu-ray, DVD- und CD-Neuheiten Mai Nr. 1 (Im Vertrieb der NAXOS Deutschland G...
Blu-ray, DVD- und CD-Neuheiten Mai Nr. 1 (Im Vertrieb der NAXOS Deutschland G...Blu-ray, DVD- und CD-Neuheiten Mai Nr. 1 (Im Vertrieb der NAXOS Deutschland G...
Blu-ray, DVD- und CD-Neuheiten Mai Nr. 1 (Im Vertrieb der NAXOS Deutschland G...
 
NAXOS-Neuheiten im Mai 2014
NAXOS-Neuheiten im Mai 2014NAXOS-Neuheiten im Mai 2014
NAXOS-Neuheiten im Mai 2014
 
1 Alejandro Roman / Vrap
1 Alejandro Roman / Vrap1 Alejandro Roman / Vrap
1 Alejandro Roman / Vrap
 
Dessous Modenschau!
Dessous Modenschau!Dessous Modenschau!
Dessous Modenschau!
 
eCommerce Deutschland
eCommerce DeutschlandeCommerce Deutschland
eCommerce Deutschland
 
Autoduplicación del adn 2012
Autoduplicación del adn 2012Autoduplicación del adn 2012
Autoduplicación del adn 2012
 
Congreso Educativo INACAP 2014 - Jorge Soto
Congreso Educativo INACAP 2014 - Jorge SotoCongreso Educativo INACAP 2014 - Jorge Soto
Congreso Educativo INACAP 2014 - Jorge Soto
 
Caza del tesoro
Caza del tesoroCaza del tesoro
Caza del tesoro
 

Similaire à Jax 2012 - Apache Solr as Enterprise Search Platform

Schweine latein-vortrag
Schweine latein-vortragSchweine latein-vortrag
Schweine latein-vortrag
Ramon Wartala
 
Sh optifind praesentation_20130311
Sh optifind praesentation_20130311Sh optifind praesentation_20130311
Sh optifind praesentation_20130311
Stefan Moises
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro session
Virttoo org
 
Sitzung 10
Sitzung 10Sitzung 10
Sitzung 10
scuy
 

Similaire à Jax 2012 - Apache Solr as Enterprise Search Platform (20)

Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
 
MongoDB-Skalierung auf echter Hardware vs. Amazon EC2
MongoDB-Skalierung auf echter Hardware vs. Amazon EC2MongoDB-Skalierung auf echter Hardware vs. Amazon EC2
MongoDB-Skalierung auf echter Hardware vs. Amazon EC2
 
Schweine latein-vortrag
Schweine latein-vortragSchweine latein-vortrag
Schweine latein-vortrag
 
What’s new in Apache Solr 4.7 und Elasticsearch 1.1
What’s new in Apache Solr 4.7 und Elasticsearch 1.1What’s new in Apache Solr 4.7 und Elasticsearch 1.1
What’s new in Apache Solr 4.7 und Elasticsearch 1.1
 
Ruby und Rails für .NET Entwickler
Ruby und Rails für .NET EntwicklerRuby und Rails für .NET Entwickler
Ruby und Rails für .NET Entwickler
 
Ist GraphQL das bessere REST
Ist GraphQL das bessere RESTIst GraphQL das bessere REST
Ist GraphQL das bessere REST
 
Einführung in die funktionale Programmierung mit Clojure
Einführung in die funktionale Programmierung mit ClojureEinführung in die funktionale Programmierung mit Clojure
Einführung in die funktionale Programmierung mit Clojure
 
Prasentation Hadoop HDFS + YARN
Prasentation Hadoop HDFS + YARNPrasentation Hadoop HDFS + YARN
Prasentation Hadoop HDFS + YARN
 
Sh optifind praesentation_20130311
Sh optifind praesentation_20130311Sh optifind praesentation_20130311
Sh optifind praesentation_20130311
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro session
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
 
Sitzung 10
Sitzung 10Sitzung 10
Sitzung 10
 
Data Mining und OLAP
Data Mining und OLAPData Mining und OLAP
Data Mining und OLAP
 
Drupal 7 - Domain-Access
Drupal 7 - Domain-AccessDrupal 7 - Domain-Access
Drupal 7 - Domain-Access
 
Drupal 7 auf Amazon Web Services
Drupal 7 auf Amazon Web ServicesDrupal 7 auf Amazon Web Services
Drupal 7 auf Amazon Web Services
 
Streaming Plattformen und die Qual der Wahl
Streaming Plattformen und die Qual der WahlStreaming Plattformen und die Qual der Wahl
Streaming Plattformen und die Qual der Wahl
 
Ausgewählte Performance Technologien
Ausgewählte Performance TechnologienAusgewählte Performance Technologien
Ausgewählte Performance Technologien
 
Überblick Oracle Datenbank Hochverfügbarkeit
Überblick Oracle Datenbank HochverfügbarkeitÜberblick Oracle Datenbank Hochverfügbarkeit
Überblick Oracle Datenbank Hochverfügbarkeit
 
Query Result Caching
Query Result CachingQuery Result Caching
Query Result Caching
 
Heterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle DatenbankHeterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle Datenbank
 

Plus de SHI Search | Analytics | Big Data

Mit Customer-Journey-Analytics und Recommendations neue Potenziale erschließen
Mit Customer-Journey-Analytics und Recommendations neue Potenziale erschließenMit Customer-Journey-Analytics und Recommendations neue Potenziale erschließen
Mit Customer-Journey-Analytics und Recommendations neue Potenziale erschließen
SHI Search | Analytics | Big Data
 
Neue Kundenpotenziale durch Recommendations erschließen (Vortrag E-Commerce Tag)
Neue Kundenpotenziale durch Recommendations erschließen (Vortrag E-Commerce Tag)Neue Kundenpotenziale durch Recommendations erschließen (Vortrag E-Commerce Tag)
Neue Kundenpotenziale durch Recommendations erschließen (Vortrag E-Commerce Tag)
SHI Search | Analytics | Big Data
 
Suche und Navigation in Online-Shops. Mit Apache Solr und Elasticsearch
Suche und Navigation in Online-Shops. Mit Apache Solr und ElasticsearchSuche und Navigation in Online-Shops. Mit Apache Solr und Elasticsearch
Suche und Navigation in Online-Shops. Mit Apache Solr und Elasticsearch
SHI Search | Analytics | Big Data
 

Plus de SHI Search | Analytics | Big Data (12)

Buzzword Bingo E-Commerce
Buzzword Bingo E-CommerceBuzzword Bingo E-Commerce
Buzzword Bingo E-Commerce
 
E commerce-tag berlin-nichts_im_sortiment_gefunden
E commerce-tag berlin-nichts_im_sortiment_gefundenE commerce-tag berlin-nichts_im_sortiment_gefunden
E commerce-tag berlin-nichts_im_sortiment_gefunden
 
Mit Customer-Journey-Analytics und Recommendations neue Potenziale erschließen
Mit Customer-Journey-Analytics und Recommendations neue Potenziale erschließenMit Customer-Journey-Analytics und Recommendations neue Potenziale erschließen
Mit Customer-Journey-Analytics und Recommendations neue Potenziale erschließen
 
Apache Solr - die Moderne Open Source Technologie
Apache Solr - die Moderne Open Source TechnologieApache Solr - die Moderne Open Source Technologie
Apache Solr - die Moderne Open Source Technologie
 
Neue Potentiale durch Recommendations erschliessen und Conversions steigern (...
Neue Potentiale durch Recommendations erschliessen und Conversions steigern (...Neue Potentiale durch Recommendations erschliessen und Conversions steigern (...
Neue Potentiale durch Recommendations erschliessen und Conversions steigern (...
 
Neue Kundenpotenziale durch Recommendations erschließen (Vortrag E-Commerce Tag)
Neue Kundenpotenziale durch Recommendations erschließen (Vortrag E-Commerce Tag)Neue Kundenpotenziale durch Recommendations erschließen (Vortrag E-Commerce Tag)
Neue Kundenpotenziale durch Recommendations erschließen (Vortrag E-Commerce Tag)
 
Custom Solr Tokenizer Flexible Tokenizer with JFlex
Custom Solr Tokenizer Flexible Tokenizer with JFlex Custom Solr Tokenizer Flexible Tokenizer with JFlex
Custom Solr Tokenizer Flexible Tokenizer with JFlex
 
Mehr Umsatz mit einer intelligenten Shop-Suche
Mehr Umsatz mit einer intelligenten Shop-SucheMehr Umsatz mit einer intelligenten Shop-Suche
Mehr Umsatz mit einer intelligenten Shop-Suche
 
Suche und Navigation in Online-Shops. Mit Apache Solr und Elasticsearch
Suche und Navigation in Online-Shops. Mit Apache Solr und ElasticsearchSuche und Navigation in Online-Shops. Mit Apache Solr und Elasticsearch
Suche und Navigation in Online-Shops. Mit Apache Solr und Elasticsearch
 
Setting-up Elasticsearch, Logstash, Kibana für agile Datenanalyse
Setting-up Elasticsearch, Logstash, Kibana für agile DatenanalyseSetting-up Elasticsearch, Logstash, Kibana für agile Datenanalyse
Setting-up Elasticsearch, Logstash, Kibana für agile Datenanalyse
 
Elasticsearch Cluster Management mit Marvel
Elasticsearch Cluster Management mit MarvelElasticsearch Cluster Management mit Marvel
Elasticsearch Cluster Management mit Marvel
 
Überblick über die Suchplattform LucidWorks Search 2.1
Überblick über die Suchplattform LucidWorks Search 2.1Überblick über die Suchplattform LucidWorks Search 2.1
Überblick über die Suchplattform LucidWorks Search 2.1
 

Jax 2012 - Apache Solr as Enterprise Search Platform

  • 1. Apache Solr als Enterprise Search Plattform
  • 2. Markus Klose - SHI • Projektmanagement • Requirements Engineering • Certified Solr Trainer • Enterprise Solution • Infrastruktursoftware • Beratung / Implementierung
  • 3. Agenda • Enterprise Search • Solr Basics • Herausforderungen & Lösungen • Ausblicke
  • 4. Enterprise Search 85% aller Firmen haben auf weniger als 50% aller ihrer Daten Zugriff (Google)
  • 6. Enterprise Search mit Solr • Open Source vs. Kommerziell • Solr – Relevanz-Algorithmus (TF-IDF) – Kein Vendor-Lock – Zugriff auf Source Code – Aktive Community – Keine Lizenzgebühren / Kosten – Performance
  • 7. Solr Basics • Solr … – … Framework für Such Applikationen – … nutzt Lucene – … Infrastruktur (Cache, Analyzer etc.) – … konfigurierbar (customizing) – … läuft in allen gängigen Servlet Containern – … aktuelle Version 3.6
  • 8. Solr Basics • Solr Architektur – Konfigurationen – RequestHandler – ResponseWriter – UpdateHandler – ReplicationHandler – ….
  • 9. Solr Basics Konfiguration • solr.xml – Konfiguration meherer Cores • solrconfig.xml – Handler / SearchComponents etc. – Caching / Index Settings • schema.xml – Felder / Typen / Analyze
  • 10. Solr Basics HTTP Requests • Indexierung – http://host:8983/solr/update/csv?stream.file=data.csv&strea m.contentType=text/plain;charset=utf-8 • Suche – http://host:8983/solr/select?q=baseball&fq=type:pdf&sort=titl e asc • Administration (SWAP) – http://host:8983/solr/admin/cores?action=SWAP&core=live& other=test
  • 11. Solr Basics Solr Ökosystem – Hadoop: Verteiltes Dateisystem – Mahout: Data-Mining – Tika: Metadaten Indexierung – Nutch: Web Crawler – ManifoldCF: Repository Connector – Pypes – Verarbeitungs Pipeline (Python) – RabbitMQ - Messaging System
  • 12. Herausforderungen • Anbindung versch. Datenquellen • Verteilte / heterogene Systeme • Berechtigungen • Relevanz / Precision & Recall • Mehrsprachigkeit • Einheitliche Suche • etc.
  • 13. Herausforderungen Anbindung verschiedener Datenquellen • Indexierung - Solr • Indexierung - DataImportHandler • Indexierung - Clients • Indexierung - externe Tools
  • 15. Indexierung - DIH • Bestandteile – DataSource – EntityProcessor – Transformator • Use Cases – Datenbanken – Feeds (RSS/ATOM) & XML Dateien – Rich Content – Mail Server
  • 16. Indexierung – Clients • Java (SolrJ) Apache Solr PHP Client • JavaScript • PHP • Ruby • C# (SolrNet) • Python
  • 17. Indexierung – externe Tools • Nutch • Heritrix • ManifoldCF – … Sharepoint, Documentum … • Google Connector Framework
  • 18. Herausforderungen Verteilte Systeme / Skalierbarkeit • Replikation • Sharding • Unique IDs
  • 19. Basisarchitektur Indexierung • Eine Instanz übernimmt Solr sowohl die Indexierung als auch die Suche Suche
  • 20. Indexierung Replication • Hohes Volumen an Suchanfragen Master • 1 Master mit N Slaves Slave 1 Slave2 • Delta Replikation möglich • Konfigurationsdateien können repliziert werden Suche
  • 22. Sharding Indexierung • Verteilung von großen Datenmengen Shard 1 Shard 2 • Solr sucht über alle Shards & fasst die Ergebnisse zusammen Searching • Kein globaler TF-IDF
  • 23. Sharding & Replication Indexierung • Flexibles Szenario Master 1 Master 2 • Große Datenmengen und hohes Aufkommen von Suchanfragen Slave 11 Slave 12 Slave 21 Slave 22 Suche
  • 24. Unique IDs • Update / Deletes / Verteilte Systeme • Solr FieldType solr.UUIDField • Basistypen nutzen • Typische Fehler – ID nicht einzigartig -> weniger im Index – ID nicht reproduzierbar -> verschiedene Versionen im Index
  • 25. Herausforderungen Heterogene Systeme / Mehrsprachigkeit • Deduplikation • Solr - Konfiguration – Dismax/eDismax • Schema - Konfiguration – Analyse (Tokenizer / Filter) – Dynamische Felder – Copy Fields
  • 26. Deduplikation • Doppelte Dokumente im Index • schema.xml • solrconfig.xml
  • 27. Dismax / eDismax • DisMax – Disjunction Maximum • extrem variabel einsetzbar • versucht immer etwas zurückzuliefern
  • 28. Analyse • Feldzentrische Verarbeitung des Inhalts – Tokenizer – Tokenfilter – CharFilter
  • 29. Schema - Konfiguration • Dynamische Felder • Copy Field • Default Werte
  • 30. Herausforderungen Einheitliche Suche / Berechtigung • AutoSuggest • Facetten • DidYouMean • Clustering / Field Collapsing • Berechtigungen
  • 31. AutoSuggest • Vorschlag des zu suchenden Begriffs
  • 32. Facetten • Gruppierung der Ergebnismenge • Navigationselement
  • 33. DidYouMean • Wortvorschlag, basierend auf dem Index • „Meinten Sie“ - Fuktionalitäten
  • 35. Search - Berechtigungen • Kein Standard • Beispiel: ActiveDirectory bei SHI – Index: zusätzliche Information – Suche: zusätzliche FilterQuery Auth.jsp fq= q=jax&fq=… q=jax allow:“12-33-45-7“ Solr AND Response Response -deny:“12-33-45-7“
  • 36. Herausforderungen Relevanz / Precision & Recall • TF-IDF • Sortierung / Function Queries • Boosting • Syntax
  • 37. TF-IDF • Scoring in 2 Phasen – Boolsche Modell – Vector Space Modell • Relevanzalgorithmus
  • 38. Sortierung / Function Queries • Sortierung – default ist Score – Konstantes Scoring bei *:*, Range und fq – Beispiel: sort=titel asc,author desc • Function Queries – Beeinflussung des Ranking (bf/boost Parameter oder sort) – Beispiel: recip(ms(NOW,mydatefield),3.16e-11,1,1)
  • 39. Syntax • Query -> q • FilterQuery ->fq • Boolean Operatoren -> OR, AND, NOT, +, - • Phrasen -> “Harrison Ford”~5 • Wildcard -> fi?m, film* • Fuzzy -> Hale*0.9 • Boost -> q=star OR trek^4.0 • Range -> preis:[1 TO 10] oder preis:{1 TO 10}
  • 40. Ausblicke • Solr Cloud – Verteilte Suche mit zentraler Konfiguration • Near Real Time Search – Alternative Commit Strategie • JOIN – „Verknüpfung“ von Dokumenten
  • 41. Weiterführende Informationen • Solr – Wiki (http://wiki.apache.org/solr) – Jira (https://issues.apache.org/jira/browse/SOLR) – Mailinglist (http://lucene.apache.org/solr/mailing_lists.html) • Websites – SHI (http://www.shi-gmbh.com/blog) – Lucid Imagination (http://www.lucidimagination.com)
  • 42. Demo / Q & A Vielen Dank für Ihr Interesse