De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Lucene/SOLR 1: inleiding + indexering

Verwante presentaties


Presentatie over: "Lucene/SOLR 1: inleiding + indexering"— Transcript van de presentatie:

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

2 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 

3 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

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

5 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

6 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

7 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

8 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

9 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

10 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 

11 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

12 SOLR admim dashboard

13 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"> T05: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

14 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>

15 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"/>

16 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

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


Download ppt "Lucene/SOLR 1: inleiding + indexering"

Verwante presentaties


Ads door Google