Lucene/SOLR 1: inleiding + indexering

Slides:



Advertisements
Verwante presentaties
Defining a standard JSON-based exchange format for learning metadata Manon Haartsen.
Advertisements

Help, ik moet naar Office 2007!?. Wat horen wij bij klanten Training “New UI will cause too big of a loss in productivity” Training “New UI will cause.
Applicatieplatform congres 12 & 13 maart
SURFnet Search Engine NG Opzet en uitgangspunten Utrecht, 09 juni 2004 Henny Bekker.
Waitstats 2005/ april Wat gaan we doen? • Even voorstellen • Performance problemen • Een veel gebruikte aanvliegroute • Wat zijn waitstats.
Hoe SQL injection werkt
Social Technographics Hoe ontwikkel je een succesvolle social media strategie? Reineke Reitsma Director, Consumer Technographics Forrester Research 11.
Zoekmachines ICT voor Studie en Werk College 6 5 oktober 2006 Toine Bogers.
Stateful web, developments, trends 1 Webtechnologie Lennart Herlaar.
Fedora Content Model en XSLT Fedora op Klompen, Amsterdam, Egbert Gramsbergen TU Delft Library / Digital Product Development
E-RADEN Roadmap. AGENDA • Overzicht van nieuwe ontwikkelingen 2009 • Interfaces • Document Types : Meta-data • E-raden gratis ? • Perspectieven.
Databases via internet
OpenGIS Web Feature Services om kadastrale data te bewerken Afstudeervoordracht - 14 mei 2004 Thijs Brentjens – GISt, TU Delft.
JQuery en ASP.NET Bart De Meyer.
Access en MySql Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
Frédérique Harmsze - Macaw 22 juni Wie ben ik?  Frédérique Harmsze  Information Worker Consultant bij Macaw sinds 2004  Intranet-projecten met.
Sitecore Item Web API & Mobile SDK
COSTA Common Set of Tools for Assimilation of Data OpenDA/COSTA voor operationele modellen en kalibratie rivier toepassingen Nils van Velzen Simona gebruikersdag.
SQL VOOR BIOLOGEN © 2011 M.L. Hekkelman CMBI Radboud UMC.
Biml en Data Vault.
SQL Server 2012 Top 10 new features.
Voor VBA programmeurs Maurice de Beijer.  Maurice de Beijer.  The Problem Solver.  Visual Basic MVP.  Blog: theproblemsolver/default.aspxhttp://msmvps.com/blogs/
© 2004 IBM Corporation Guts Wissema, OpenSource & Linux Sales, IBM Open Document Format.
Speaking OData to SharePoint 2010 in a RESTful manner Michaël Hompus | Principal Developer | Winvision.
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
Blackboard + Weblog Ik gebruik ik een weblog naast Blackboard. –Waarom ? –Hoe ? –Wat levert het op [=meerwaarde] ?
Faculteit Ingenieurswetenschappen & Wetenschappen Software Engineering Publicatie Management Systeem Groep se1 Software Engineering Thierry Coppens.
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
Elizabeth Mattijsen Eerste Nederlandse Perl Workshop 5 maart 2004 Parsing XML / HTML.
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
Turnitin rapport opvragen / Turnitin inbox inhoud van een rapport
1 Toegepaste Informatica Keuzevak C++ 3°jaar. 2 Studiefiche  Software  Boek (hfst 3-5)  Presentatie (website)
1/1/ / faculty of Computer Science eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(2): Vertalen.
WinFX Overview Martin Tirion Senior Consultant Microsoft Services.
Client Management met ConfigMgr Jannes Alink – Management.
Applicatieplatform congres 12 & 13 maart
Databases I (H.3) Het Entity-Relationship Model Wiebren de Jonge Vrije Universiteit, Amsterdam versie 2003.
Indexen en zoekstrategieën Marc Jeurissen Anet Gebruikersdag 15 juni 2011.
Mashups for the masses Maarten Brugman & Sven Vintges.
Mashups for the masses Maarten Brugman & Sven Vintges Atos Origin SI Center of Excellence RIA.
Hibernate Object relational mapping
HOM - COM Ledenvergadering 08 / 10 / Easeus-Partition-Master- Home-Edition Link software: Master-Home-Edition/ _4-
Wolter Kaper - AJAX en Javascript via Rails Deel 1 en 2.
Oefentherapie bij ischialgie CAT de Krom
Linux Workshop 3 Systeem configuratie. Na de installatie  Netwerkinstellingen controleren (ook proxy!)  Systeem software updaten  Hardware drivers.
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
Visual Basic.Net - Overzicht
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag GUI  command line redirection.
Microsoft Windows Vista vanuit gebruikersperspectief.
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
XForms TU Delft Library Digitale Productontwikkeling Egbert Gramsbergen.
Web Applicaties Bouwen met Visual Studio .NET
MMBase Lucene module Wouter Heijke. Kenmerken Lucene Apache Software License Snel/Efficient Java API Query Language Maatwerk nodig voor MMBase.
1 december KC Development Tools Oracle HTML DB 2.0.
DARE SUMMER SCHOOL Metadata Peter van Huisstede / Ursula Oberst 28 juni 2005.
1 Okt 4, 2005 Oracle en XML. 2 Okt 4, 2005 xml in database Datatype XMLTYPE  hét xml datatype in de database CLOB, varchar2... Opslag XMLType (Object)tabel.
1 De ontdekking van Web 2.0 Presentatie Team Ordina type hier de datum 19 april 2007.
We zijn toch allemaal zoekende?
Sketchpad - Introductie Mens en computer kunnen snel converseren door medium van line drawings Hexagons als één symbool (Ring Structure) Verschil met potlood.
Ted Nelson (1937- ) A file structure for the Complex, the changing, and the Interdeterminate.
Link Popularity Het principe van linkpopulariteit kun je als volgt samenvatten: hoe meer webpagina's er naar een bepaalde webpagina linken, des te belangrijker.
Klik op een vlag. Click on a flag Language: Jefken is altijd daar om te helpen ! Jefken is always there to help !
In samenwerking met HowITsDone JSF versus AngularJS client-server 2.0.
The beast has been released! 4 arcade-style games Interviews with famous people in the game industry Develop browsers games for any device (phone, tablet,
Usability metrics Gebruiksvriendelijkheid ISO Effectiveness Efficiency Satisfaction Learnability Flexibility En nu? Inleiding Hoe gaan we de gebruiksvriendelijkheid.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Les 2: Zaterdag 1 maart 2014 Wim Peeters
1 OMI Modelleren van content. 2 Vocabulary Content “gevangen” in begrippenapparaat: Vocabulary: lijst met termen nauwelijks semantiek Ontology:
1 Philosopher’s Index Handleiding Philosopher’s Index.
G-CLOUD SHAREPOINT USER GROUP
Transcript van de presentatie:

Lucene/SOLR 1: inleiding + indexering Lucene inleiding Lucene indexering SOLR inleiding SOLR indexering TU Delft Library Digitale Productontwikkeling Egbert Gramsbergen

Wat is Lucene? “Apache Lucene is a high-performance, full-featured text search engine library written entirely in Java”  … en nix extra! geen crawler, geen document parsers, geen taalherkenning, geen facetten, geen clustering, geen UI, geen services, geen admin dashboard 

Wat is Lucene? - 2 Java API voor: Indexeren van org.apache.lucene.document.Documents Uitvoeren van org.apache.lucene.search.Querys resulterend in org.apache.lucene.search.Hits Kwaliteiten: ++ performance, schaalbaar, robuust, geavanceerde zoek- en rank algoritmes, zeer configureerbaar

Lucene Document Document Field Field …… Field Field name “……” value “………………” Field name “……” value “………………” Field name “……” value “………………” Field name “……” value “………………” Veldnamen mogen worden herhaald

Lucene indexering INDEX analyzer Stored? Y Indexed? Y Document …… Field name value Field name value analyzer Y Field name value Y analyzer Indexed: voor zoeken Stored: voor bijv. lijst van hits div. analyzers, keuze hangt meestal af van veldnaam (of ook bijv. taal) Geen beperking op veldnamen, d.w.z. heterogene collecties toegestaan analyzer INDEX in org.apache.lucene.store.Directory = filesysteem, db of RAM

Lucene indexering – keyword fields Document …… Keyword field Field name value Field name value Gewone velden Field name value analyzer analyzer Keyword fields worden geïndexeerd as-is. Te gebruiken voor bijv. url’s, isbn’s, velden waarop moet worden gesorteerd of gefacetteerd. Vaak als verdubbeling (voor sorteren/facetteren) van “normaal” geïndexeerd veld (voor zoeken) INDEX

Lucene indexering – Analyzer …… text uit Field Analyzer: soms afwezig (bij keyword fields) Tokenizer: splitst in woorden (leestekens, samengestelde woorden etc. =>verschillende versies) Filter: bewerkt woorden Tokenizer Filter Filter Filter Boost factor (hier per Field, kan ook per Document) naar index

Lucene indexering/analyzer – Filter Filter bewerkt losse woorden Bijv. Accenten verwijderen Niet-alfanumerieke tekens verwijderen Stopwoorden verwijderen Alles lowercase maken Herleiden tot woordstam Synoniemen toevoegen Filter wordt ook gebruikt bij query analyse Vuistregel: gebruik dezelfde filters als bij indexeren Uitzondering: synomiemen

indexering compleet Wat moet er nog meer gebeuren? Lucene index voorbewerking Lucene document taal detectie analyzers analyzers analyzers html xml pdf doc … parser parser parser doctype detectie index web / filesysteem crawler

SOLR “Solr is an open source enterprise search server based on the Lucene Java search library, with XML/HTTP and JSON APIs, hit highlighting, faceted search, caching, replication, and a web administration interface. It runs in a Java servlet container such as Tomcat.” Vergelijk: “Apache Lucene is a high-performance, full-featured text search engine library written entirely in Java”  … en nix extra! geen crawler, geen document parsers, geen taalherkenning, geen facetten, geen clustering, geen UI, geen services, geen admin dashboard 

zonder SOLR met SOLR SOLR Lucene Lucene Java Java SOLR toevoegingen xml config Eigen Java code SOLR toevoegingen Admin dashboard xml Eigen code in taal X admin

SOLR admim dashboard

Indexering met SOLR Commandos: add/update, delete, commit, optimize <doc> <field name="url">http://localhost/myBlog/solr-rocks.html</field> <field name="title">Solr Search is Simply Great</field> <field name="keywords">solr,lucene,enterprise,search</field> <field name="creationDate">2007-01-06T05:04:00.000Z</field> <field name="rating">10</field> <field name="content">Solr is a really great open source search server. It scales, it's easy to configure and the Solr community is really supportive.</field> <field name="published">on</field> </doc> <doc>…</doc> </add> Commandos: add/update, delete, commit, optimize

SOLR schema - 1 Definitie van field types (algemene types die voor verschillende velden zijn te gebruiken) Voorbeeld: <fieldtype name="text" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true“ words="stopwords.txt"/> <filter class="solr.WordDelimiterFilterFactory“ generateWordParts="1“ generateNumberParts="1" catenateWords="1" catenateNumbers="1“ catenateAll="0"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> <analyzer type="query">……</analyzer> </fieldtype>

SOLR schema - 2 Gedeclareerde fields - voorbeeld: <field name="url" type="string" indexed="true" stored="true"/> <field name="title" type="text" indexed="true" stored="true"/> <field name="keywords" type="text_ws" indexed="true" stored="true" multiValued="true" omitNorms="true"/> <field name="creationDate" type="date" indexed="true" stored="true"/> <field name="rating" type="sint" indexed="true" stored="true"/> <field name="published" type="boolean" indexed="true" stored="true"/> <field name="content" type="text" indexed="true" stored="true" /> <!-- catchall field, containing many of the other searchable text fields (implemented via copyField further on in this schema) --> <field name="all" type="text" indexed="true" stored="true" multiValued="true"/>

SOLR schema - 3 Nog meer declaraties: <uniqueKey>url</uniqueKey> N.B. Lucene zelf kent geen unique key, dit is een SOLR toevoeging. Maakt updaten veel gemakkelijker. <defaultSearchField>all</defaultSearchField> Dus query appelmoes == query all:appelmoes <dynamicField name=“*_i" type=“sint" indexed="true" stored="true" /> Vooral handig voor heterogene collecties / niet volledig voorspelbare veldnamen <copyField source=“title” dest=“all”/> Herhaalbaar, ook dynamische veldnamen toegestaan in source

Einde. De volgende ke(e)r(en): Lucene Queries Lucene Response Hoe gaat dat met SOLR Facetten in SOLR Hopelijk ook: live demo