Hibernate Search. Unterstützung laufender Java Projekte. Perfect Match Rent-a-team Coaching on the project Inhouse Outsourcing



Ähnliche Dokumente
Struts 2 Das Imperium schlägt zurück?

Last- und Stresstest mit the Grinder 3

Atlassian Git Essentials Nahtlose Entwicklungsworkflows aus einer Hand

Gregor Raschke 2008 HIBERNATE. Eine Einführung

Issue Tracker & Wiki

Ant + Ivy Building with dependencies

Objektorientierte Datenbanken

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk

Hibernate und Elasticsearch Von 0 auf 100 in 40 Minuten

Auszug aus JAX-WS Folien

NoSQL Datenbanken am Beispiel von CouchDB

Open-Source Transparente Persistence (keine Interfaces, keine Ober- Klassen) Caching

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Agile Ressourcenplanung

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

design kommunikation development

Hibernate. Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen. Nabil janah 1 Hibernate

Suchen und Finden mit Lucene und Solr. Florian Hopf


Hibernate Das Praxisbuch für Entwickler

Jakarta Lucene. Eine Java-Bibliothek zur Suchindex-Erstellung. Seminararbeit Tilman Schneider

Website-Suche mit OpenText Web Site Management. Frank Steffen - Senior Product Manager

Übungsaufgabe Transaktion als Middleware

Christian Kühl. Von JDO zu JPA Entwicklung einer Migrationsstrategie

Google Collections. Gliederung. Los geht s... Praktische Helferlein Collections Wie geht s weiter? Version: 1.0. Orientation in Objects GmbH

Inhaltsverzeichnis. Bernd Müller, Harald Wehr. Java Persistence API 2. Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN:

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML

Aufgaben zu XPath und XQuery

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

IntelliJ IDEA. Gliederung. Was ist IntelliJ IDEA? Lizenzmodell Warum IntelliJ einsetzen? IntelliJ und Eclipse Demo. Blick über den Eclipse-Tellerrand

Swetlana Stickhof. Universität Heidelberg

Angriff auf den Platzhirsch

BIRT in Enterprise Architekturen

Search Evolution von Lucene zu Solr und ElasticSearch

Datenmanagement in Android-Apps. 16. Mai 2013

Computerlinguistik im Service Management eine neue Suche für TOPdesk

Oliver Paulus, 7. Februar Spring Framework Einführung. Oliver Paulus, Was ist Spring?

Ich liebe Java && Ich liebe C# Rolf Borst

Holistic Software Escrow from TIMBUS

Dehnbarer Begriff Verteiltes Suchen mit Elasticsearch

Agenda. Anwendungsfälle. Integration in Java

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

.NET Code schützen. Projekt.NET. Version 1.0

Ein neues Outlook Konto können Sie im Control Panel über den Eintrag Mail erstellen.

Übung Medienretrieval WS 07/08 Thomas Wilhelm, Medieninformatik, TU Chemnitz

Agile Ressourcenplanung

Java Web Services Metadata JSR-181

It's time to rethink Datenbank-Design in der schönen neuen Welt

Konfiguration von Fabasoft Mindbreeze Enterprise für IBM Lotus

Agile Ressourcenplanung

Java Persistence API 2.x. crud + relationships + jp-ql

Suchmaschinen mit Lucene und SEMS

Integrierte und automatisierte GUI-Tests in Java

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

Assoziation und Aggregation

Web Data Management Systeme

BEO-SANKTIONSPRÜFUNG Eine Einführung zum Thema Sanktionsprüfung und eine Übersicht zur BEO-Lösung.

Indizierungs- und Suchlogs. Version 2015

Roland Tilgner. Solution Architects & Team Coaching DEVELOPMENT. ORACLE TEXT AUS PL/SQL-SICHT Features und Möglichkeiten

Effektiver Einsatz von Code-Reviews

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Typumwandlungen bei Referenztypen

SDK zur CRM-Word-Schnittstelle

Große Übung Praktische Informatik 1

Oracle: Abstrakte Datentypen:

Kurzeinführung Excel2App. Version 1.0.0

HYPERIMAGE. Technologieentwicklung und WebServices

Installationsanleitung für Add-on Paket: Preset Collection Seasons

Wochenbericht. Firas Zoabi. Studienprojekt A: SIMPL. 28. Dezember 2009 I M P

Integrated Search Einbindung von SharePoint Search in Office Apps Melanie Culver & Michael Appinger

Nathan Burgener. Design by Contract. Modul SWE

Integrationskonzepte für die HP Quality Center Plattform. Vivit 2009

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Relationales Datenbankpraktikum

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Java: Vererbung. Teil 3: super()

Java Persistence API. Phillip Ghadir Oliver Tigges

AJAX Implementierung mit Joomla!

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Programmentwicklung ohne BlueJ

Große Versuchung, von Listenplanung abzuweichen

a.sign Client Lotus Notes Konfiguration

OR-Mapping. WS2008/2009 DBIS/Dr. Karsten Tolle

Informatik 12 Datenbanken SQL-Einführung

Open Source. Hendrik Ebbers 2015

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.0.

ECLIPSE PLUG-IN. Redwood Anwendertage 2015

Rene Böing, Alexander Kuhn, Marc Wilmes Einführung in Spring und Hibernate

NHibernate vs. Entity Framework

Das Archivportal Europa Neuer Blick auf die eigenen Daten

WPF Bindung. Dr. Beatrice Amrhein

Factory Method (Virtual Constructor)

Relution Enterprise Appstore. Enable Enterprise Mobility. 2.5 Release Note

XMLBeam. Einfach XML-Handling. W3L AG

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

Transkript:

Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Software Factory ) ) Object Rangers ) ) Competence Center) Schlüsselfertige Realisierung von Java Software Individualsoftware Pilot- und Migrationsprojekte Sanierung von Software Software Wartung Unterstützung laufender Java Projekte Perfect Match Rent-a-team Coaching on the project Inhouse Outsourcing Schulungen, Coaching, Weiterbildungsberatung, Train & Solve-Programme Methoden, Standards und Tools für die Entwicklung von offenen, unternehmensweiten Systemen 2

Ihre Speaker Serge Ndong 3 Gliederung Einführung Vergleich SQL Suche, Volltextsuche Konfiguration Mapping Queries Ausblick 4

search try to find something by looking or otherwise seeking carefully and thoroughly Quelle: http://www.askoxford.com 5 Grenzen von SQL Wildcard und Wortsuche %hibernate% Approximation (oder Synonym) hybernate statt hibernate brauchbaren Ergebnisse zuerst Relevanz Persistenz nah zu Hibernate Bedeutungsnähe Spaltengewichtung Suchen auf mehreren Spalten a book about persisting Objects with ybernate from Wang 6

Mismatch: Domain Modell - Lucene-Welt Kategorie name:string Domain Modell? Buch titel:string isbn:string autor1:string autor2:string Exemplar ausleihdatum:date Buch Dokument Lucene-Welt Titel: isbn: 1933988649 autor1: Emmanuel Bernard autor2: john Griffin exemplare. ausleihdatum:01.12:2008 exemplare. ausleihdatum:16.12:2008 7 Hibernate Eventsystem Synchron oder Asynchron Transparente Indizierung Objektstruktur in Indexstruktur Transfer verbindet Lucene mit Hibernate Hibernate Plattform Licence - LGPL verwendet Hibernate Core 8

Konfiguration Configuration by Exception 80% default Konfiguration hibernate.properties # Configuration hibernate.search.default.indexbase /users/application/indexes hibernate.cfg.xml <property name= hibernate.search.default.indexbase > /users/application/indexes </property> 9 Mapping @Indexed(index="buechererverwaltung") @Entity@Table(name = "Buecher") public class Buch { @DocumentId @Id @Column(name = "buch_id") private Integer id; @Field private String titel; @Field(store = Store.YES, index = Index.UN_TOKENIZED) private String isbn; @IndexedEmbedded @ManyToOne @JoinColumn(name = "verlag_fk") private Verlag herausgeber; @ContainedIn @OneToMany(mappedBy = "buch") @JoinColumn(name = "Buch_FK") private Set<Exemplar> exemplare = new HashSet<Exemplar>(); 10

Mapping Field Bridge @Field private String titel; Built-in Konvertierung vom Objekttyp zum String Vergleich Index Strategien @Field @Field(name = isbn_sort", index = Index.UN_TOKENIZED, store = Store.YES) private Tokenized? String isbn; Speicherung von Daten im Index Eine Eigenschaft mehrfach Indizieren 11 Mapping Analyser @Field @Analyzer(impl=PhoneticAnalyzer.class) private String titel; Text in Wörte zerstückeln (auf Tokenized Felder) Default Analizer Konfigurierbar auch auf Entität- und Feldebene einsetzbar Boost Factor @Field @Boost(1.5f) private String oiotags; default ist 1.0 Beeinflusst den Document Rank Wert für Feld = Entity Wert * Feld Wert 12

Mapping - Beziehungen Verlag Buch Exemplar Relation @IndexedEmbedded @ManyToOne @JoinColumn(name = "verlag_fk") private Verlag herausgeber; @ContainedIn @OneToMany(mappedBy = "buch") @JoinColumn(name = "Buch_FK") private Set<Exemplar> exemplare = new HashSet<Exemplar>(); 13 Query Abfrage ähnlich wie JPA und Criteria Query Objekte werden zurückgegeben, keine Dokumente kein Code zum Konvertieren Objekte aus dem Persitenzkontext Hibernate managed Objekten werden zurückgegeben Benutzt die org.hibernate.query /javax.persitence.query Unterstützung von Paging Querry auf abhängige Objekten Join ähnliche Queries 14

Query 1. Lucene Query 2. Hibbernate Search wrappen MultiFieldQueryParser parser; parser = new MultiFieldQueryParser( new String[] { title, descr }, new StandardAnalyzer()); org.apache.lucene.search.query query = null; query = parser.parse( o wie OIO ); // org.hibernate.search.jpa.fulltextentitymanager // org.hibernate.search.jpa.search FullTextEntityManager fulltextem; fulltextem = Search.getFullTextEntityManager(entityMang); // org.hibernate.search.jpa.fulltextqueryfulltextquery FullTextQueryFullTextQuery query; query = fulltextem.createfulltextquery(query, Book.class); 15 Query 3. Params 4. Happieness query.setfirstresult(15); query.setmaxresults(10); // gibt dann nur die document_id zurück // welches meist auch die Id ist query.setprojection(fulltextquery.id); List<Object[]> results = hibquery.getresultlist(); List<BookDTO> booksview = new ArrayList<BookDTO>(); for (Object[] result : results) { String id = (String) result[0]; booksview.add(findasdto(id)); } return booksview; 16

Query Ausführungsschritte Ergebnisse aufbereiten Such-String Hibernate Search query Objekte laden Anfrage Persistence context Ergebnisdokumente Lucene index DB 17 Features Sortierung bei Felden statt bei der Relevanz Index.UN_TOKENIZED oder INDEX_NO_NORMS Natives Lucene Manuelle Indizierung Index Sharding Sandbox 18

features (Proketion / Filter) Proketion properties statt managed Objekte Filter Security Kategorien metadata SCORE DOCUMENT_ID BOOST... Quelle: in Action 19 Literaturhinweise in Action Sprache: Englisch broschiert - 450 Seiten - Manning publications Erscheinungsdatum: 28. Dezember 2008 ISBN: 1933988649 Lucene in Action Sprache: Engisch broschiert - 456 Seiten - Manning publications Erscheinungsdatum: 1. Dezember 2004 ISBN: 1932394281 20

Vielen Dank für Ihre Aufmerksamkeit! Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de??? Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim? Fragen?? Version: 1.0 www.oio.de info@oio.de

Mehr von OIO zum Thema... Schulung: Java Persistence API mit Hibernate http://www.oio.de/seminar/java/seminar-hibernate-training-jpa-schulung.htm Vortrag: Persistent mit Hibernate http://www.oio.de/m/konf/jax2005/persistenz_mit_hibernate_final.pdf Referenz: Richtiges Arbeiten mit Hibernate http://www.oio.de/referenzen/competence-center/referenz-beratung-hibernateexpertenwissen.htm Beratung zu JPA und Hibernate http://www.oio.de/beratung-consulting/open-source-software/javaframeworks/hibernate-consulting.htm 23