1 / 17

Lucene/SOLR 1: inleiding + indexering

Lucene/SOLR 1: inleiding + indexering. TU Delft Library Digitale Productontwikkeling. Lucene inleiding Lucene indexering SOLR inleiding SOLR indexering. Egbert Gramsbergen. Wat is Lucene?.

lundy
Download Presentation

Lucene/SOLR 1: inleiding + indexering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lucene/SOLR1: inleiding + indexering TU Delft Library Digitale Productontwikkeling • Lucene inleiding • Lucene indexering • SOLR inleiding • SOLR indexering 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 name “……” value “………………” Field name “……” value “………………” Field name “……” value “………………” Field name “……” value “………………” Veldnamen mogen worden herhaald

  5. Lucene indexering Stored? Y Indexed? Y Document …… Field name value Field name value analyzer Y Field name value Y analyzer Indexed: voor zoekenStored: 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 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 wordt ook gebruikt bij query analyse Vuistregel: gebruik dezelfde filters als bij indexeren Uitzondering: synomiemen Filter bewerkt losse woorden Bijv. • Accenten verwijderen • Niet-alfanumerieke tekensverwijderen • Stopwoorden verwijderen • Alles lowercase maken • Herleiden tot woordstam • Synoniemen toevoegen

  9. indexering compleet Wat moet er nog meer gebeuren? Lucene voorbewerking Lucene document taal detectie analyzers analyzers analyzers htmlxmlpdfdoc… 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 xml config Eigen Java code SOLR toevoegingen Admin dashboard xml Eigen code in taal X admin

  12. SOLR admim dashboard

  13. Indexering met SOLR <add> <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> <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

More Related