• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Apache solr i finn.no
 

Apache solr i finn.no

on

  • 1,009 views

Gjennomgang av hvordan vi bruker Apache Solr til rubrikksøk i FINN.no. Lyntale for Baksia på Commuinties in Action 2012

Gjennomgang av hvordan vi bruker Apache Solr til rubrikksøk i FINN.no. Lyntale for Baksia på Commuinties in Action 2012

Statistics

Views

Total Views
1,009
Views on SlideShare
1,008
Embed Views
1

Actions

Likes
0
Downloads
1
Comments
0

1 Embed 1

http://us-w1.rockmelt.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Apache solr i finn.no Apache solr i finn.no Presentation Transcript

    • Apache Solr i FINN.noHelge JenssenSøkearkitekt FINN.no
    • FINN.no har brukt ulike søketeknologier Sybase (Verity) Fast 4 (FDS) Fast 5 (ESP) Apache Solr Sesam/oppdrag Rubrikk2003 2004 2005 2006 2007 2008 2009 2010 2011 2012
    • FAST ble kjøpt av Microsoft og meldte i februar2010 at de sluttet utvikling på Linux og UNIXVi måtte da vurdere om vi skulle bytte til FAST påwindows-server eller bytte til en annen teknologi”With our 2010 products scheduled for release in a few months, we’vejust started to plan for our next wave of products. As a part of thatplanning process, we have decided that in order to deliver moreinnovation per release in the future, the 2010 products will be the lastto include a search core that runs on Linux and UNIX.”Bjørn OlstadCTO, FASTDistinguished Engineer, Microsoft http://blogs.msdn.com/b/enterprisesearch/archive/2010/02/04/innovation-on-linux-and-unix.aspx
    • I et utviklingsmiljø med sterk javakompetanse erSolr et bedre valg for vårt søketeknologibehov FAST SOLR Vi har erfaring medWindows plattform + Linux LinuxProprietær + Open Source EksperimenteringLisens (pr søk evt. cpu) + Gratis og spesialiserte løsninger1 indeks pr maskin/cluster + Flere indekser pr maskin/clusterKonsulentbasert + Communitybasert Enklere (billigere) å løse problemerProblem løses av FAST + Problem løses ved å lese kodeSkrevet i mange språk + Skrevet i Java Mulig å skjønneDokumentert + Eksempler funksjonalitet”Black Box” + ÅpenOrdbokbasert støtte for norsk språk Tredjepartsverktøy med norsk ordbok (ISPELL)SBC for søkeordstatistikk + Ingen egen løsning for søkeordstatistikkSBC for vedlikehold av synonymer + Ingen egen løsning for vedlikehold av synonymerTilbyr Java - API Tilbyr Java – API Mulig med endretFunksjonalitet bestemt ved indeksering Funksjonalitet bestemt ved søk oppførsel uten reindeksering
    • Apache Solr In A Nutshell• Open source enterprise search • Application Server platform • Index (multicore) – solrconfig.xml• Apache Lucene Index • Document – schema.xml• Index/Query over HTTP – Fields – (explicit & dynamic)• HTML administration interface – FieldTypes – schema.xm• Scalability – Analyzers – Horizontal (replikering) • CharFilterFactories – Vertical (sharding) – PatternReplaceCharFilterFactory / HTMLStripCharFilterFactory• Plugin architecture • Tokenizers – WhitespaceTokenizerFactory /• Configurable caching PatternTokenizerFactory• XML Configuration • TokenFilters – WordDelimiterFilterFactory / – Request Handlers LowerCaseFilterFactory / – Response Writers SynonymFilterFactory – Data Schema
    • Hvordan bruker vi Apache Solr i FINN.no?
    • Indeksering med egen javaklient Document Content put(adI Blocking Document Document Consumer Generate Document Push d) Queue take() Document Consumer Consumer Document Generator Client Consumer Get ads ready to be indexed Index Processor Processor Ad Processor ProcessorChange Indexer add() Solr Index ad Database
    • Index oppsett i FINN.no• En eller flere instanser • Solrconfig.xml for hvert marked – Konfigurasjon av solr – En eller flere index’er – Requesthandler (multicore) pr instans – Replikering• Logging med log4j • Synonymer – QueryLog – Egne synonym filer for – Applikasjonslog hver index.• Egen schema.xml og – Flere synonym filer med solrconfig.xml for hver forskjellig bruk indeks – Multi-ord synonymer ved indeksering• Felles felttyper
    • I tillegg til Junit på koden har viintegrasjonstester på konfigurasjonen• Tester den individuelle Solr-konfigurasjon for hver index• mvn verify -Pintegration-test – Kjører opp en lokal indeks med jetty plugin (mvn jetty:run-war) – Indekserer ”dummy”-dokumenter med kjent innhold – Søker med query-string og forventer treff• Kan teste – At fritekst-søk gir forventet resultat – At ranking (qf) gir forventet resultat
    • Søk i FINN.no mot Solr bruker Apache Tiles,Spring MVC og SolrJ Endringer ved overgang fra Fast til solr Apache Spring MVC Search Search Tiles Controller Command Service SearchDisplay Config SearchService. Request QueryPolicy. buildSearchRequest() CreateQuery() Search Search Search Solr QueryResponse Index SearchServiceResult Transformer. SearchResult transform() SearchResult ResponseHandler. transform()Response
    • Nettverkstopologi - 1 master + 4 slaver
    • Erfaringer med Apache SolrDette er vi misfornøyd med Dette er vi fornøyd med• Lucene Hunspell • Ytelse lemmatiserer i overkant • Indivduelle indekser mye • 1 prosess, war-fil, med• Encoding; & er vanskelig separat solr-konfig, som å få kontroll på kjøres som webapp i• Synonymer, multi-ord Tomcat synonymer • Skrevet i Java
    • Erfaringene i henhold til forventninger, men kanskjeundervurderte vi ordbok og synonym utfordringene FAST SOLR Lett å drifteWindows plattform + Linux (webapp i tomcat)Proprietær + Open Source Egne indekser ogLisens (pr søk evt. cpu) + Gratis konfigurasjoner for egne behov1 indeks pr maskin/cluster + Flere indekser pr maskin/clusterKonsulentbasert + Communitybasert Enklere (billigere) å løse problemerProblem løses av FAST + Problem løses ved å lese kodeSkrevet i mange språk + Skrevet i Java Ikke veldig mangeDokumentert + Eksempler gode eksempler”Black Box” + ÅpenOrdbokbasert støtte for norsk språk Tredjepartsverktøy med norsk ordbok (ISPELL) Orbok og synonymer varSBC for søkeordstatistikk + Ingen egen løsning for søkeordstatistikk en større I tillegg var ytelsen bedre forSBC for vedlikehold av synonymer+ Ingen egen løsning utfordring enn vedlikehold av forventet enn forventet synonymerTilbyr Java - API Tilbyr Java – APIFunksjonalitet bestemt ved indeksering Funksjonalitet bestemt ved søk Ikke mye brukt enda
    • Apache Solr i FINN.noHelge JenssenSøkearkitekt FINN.no