+ All Categories
Transcript
Page 1: Guided Navigation - Beispiele von Schweizer Websites

Websites mit Guided Navigation Walter Schärer / Daniel Nydegger über Faceted Search

Page 2: Guided Navigation - Beispiele von Schweizer Websites
Page 3: Guided Navigation - Beispiele von Schweizer Websites
Page 4: Guided Navigation - Beispiele von Schweizer Websites
Page 5: Guided Navigation - Beispiele von Schweizer Websites
Page 6: Guided Navigation - Beispiele von Schweizer Websites
Page 7: Guided Navigation - Beispiele von Schweizer Websites
Page 8: Guided Navigation - Beispiele von Schweizer Websites

Wann eignet sich eine Facettierte Suche?

• Art des Datenbestandes–Gut strukturierte Daten

(Metainformationen)–Viele Daten

• Zielpublikum–Web Savvy?–Stöbern nach Informationen

Page 9: Guided Navigation - Beispiele von Schweizer Websites

Wie setzt man eine Guided Navigation um?

• Make or buy? Ein Thema für sich…

• Kauf von Software-Tools wie Endeca.com (vacando, migros)

• Entwicklung mit OpenSource via Lucene / Solr / Lucid (jobwinner)

• Entwicklung mit PHP (movies.ch)

Page 10: Guided Navigation - Beispiele von Schweizer Websites

Welche SEO-Aspekte muss man beachten?

• AJAX vs. Crawlbarkeit

• URL-Struktur / Multiple Content• http://vacando.ch/italien

• http://vacando.ch/alberobello/apulien/italien

Page 11: Guided Navigation - Beispiele von Schweizer Websites

Welche Usability-Vorgaben sollte man befolgen?

• AJAX vs. Crawlbarkeit...

• Ausprägung der Facetten je nach Thema

• Wie knifflig ist die Bedienung?

• Komplexität von Cross- und Up-Selling

• Beherrscht man eine Business-Rule-Engine?

Inline ExpandScrollingNeue SeiteDynamisches MenuPagingAuto CompleteKombinationen davon…

Page 12: Guided Navigation - Beispiele von Schweizer Websites

Daniel Nydegger

Software Architekt / Senior Entwickler

Webapplikationen im Open Source Umfeld

Page 13: Guided Navigation - Beispiele von Schweizer Websites

Lucene / Solr

• Solr ist eine Enterprise Search Plattform

• Bietet alle Möglichkeiten einer modernen Suche

• Hochskalierbar und weit verbreitet

• Big and Small Data Solutions

• Basiert auf Apache Lucene

Page 14: Guided Navigation - Beispiele von Schweizer Websites

Data Processing

Page 15: Guided Navigation - Beispiele von Schweizer Websites

Auschnitt Solr Index

• Einzelne oder mehrere Werte für eine Facete in einem Dokument

• Die Felder enthalten die analysierten Werte

• Text, numerische und Date Werte

Page 16: Guided Navigation - Beispiele von Schweizer Websites

Einfache Facet Abfrage

facet.field=branch&facet.sort=count

http://.../select/?facet=true&...&indent=on&rows=3&q=*:*

Allgemeine Struktur des Requests

<lst name="facet_counts"> <lst name="facet_fields"> <lst name="branch"> <int name="humanresources">172</int> <int name="versicherungen">59</int> <int name="baugewerbeimmobilien">22</int> <int name="industrieallgemein">19</int> <int name="verbaendeorganisationen">19</int> ... ... <int name="grosshandel">2</int> <int name="elektronikelektrotechnik">1</int> <int name="fahrzeugmarkt">1</int> <int name="freizeitkultursport">1</int> <int name="gastgewerbehotellerietourismus">1</int> <int name="oeffentlicheverwaltung">1</int> </lst> </lst></lst>

Page 17: Guided Navigation - Beispiele von Schweizer Websites

Facet Selection

fq=branch:(versicherungenOR banken)

<lst name="facet_counts"> <lst name="facet_fields"> <lst name="branch"> <int name="versicherungen">59</int> <int name="banken">18</int> ... <int name="anlagemaschinenmetallbau">0</int> <int name="aviatiklogistiktransportverkehr">0</int> <int name="baugewerbeimmobilien">0</int> <int name="biotechnologiechemiepharma">0</int> <int name="detaileinzelhandel">0</int> <int name="dienstleistungenallgemein">0</int> ... ... <int name="verbaendeorganisationen">0</int> </lst> </lst></lst>

Multiselection innerhalb Facet mit OR Verknüpfung

Nicht selektionierte Facets werden mit count = 0 zurück gegeben

Page 18: Guided Navigation - Beispiele von Schweizer Websites

Andere Response Formate

fq=branch:(versicherungenOR banken)&wt=json

Mit wt=javabin werden serialisierte Objekte erstellt

"facet_counts":{ "facet_queries":{}, "facet_fields":{ "branch":[ "versicherungen",59, "banken",18, ... "anlagemaschinenmetallbau",0, "aviatiklogistiktransportverkehr",0, "baugewerbeimmobilien",0, "biotechnologiechemiepharma",0, "detaileinzelhandel",0, "dienstleistungenallgemein",0, ... ... "verbaendeorganisationen",0]}, "facet_dates":{}, "facet_ranges":{}}}

Page 19: Guided Navigation - Beispiele von Schweizer Websites

Facet Selection mit Exclusion

facet.field={!ex=xy}branch&fq={!tag=xy}branch:(versicherungenOR banken)

Die nicht selektionierten Facet Values befinden sich auch in der Facet Response

Die Query Results entsprechen der Selektion

<lst name="facet_counts"> <lst name="facet_fields"> <lst name="branch"> <int name="humanresources">172</int> <int name="versicherungen">59</int> <int name="baugewerbeimmobilien">22</int> <int name="industrieallgemein">19</int> <int name="banken">18</int> ... ... <int name="grosshandel">2</int> <int name="elektronikelektrotechnik">1</int> <int name="freizeitkultursport">1</int> <int name="oeffentlicheverwaltung">1</int> </lst> </lst></lst>

Page 20: Guided Navigation - Beispiele von Schweizer Websites

Multi Facet Selection

facet.field=branch&fq=branch:versicherungen&

facet.field=region&fq=region:(011 OR 006)

011=Kanton Zürich006=Innerschweiz

Alle Inserate in der Branche Versicherungen, in der Region Zürich und Innerschweiz

Die einzelnen Facets werden AND verknüpft

Alle nicht selektionierten Werte sind haben count = 0

<lst name="facet_counts"> <lst name="facet_fields"> <lst name="branch"> <int name="versicherungen">25</int> ... <int name="anlagemaschinenmetallbau">0</int> <int name="aviatiklogistiktransportverkehr">0</int> <int name="banken">0</int> ... <int name="verbaendeorganisationen">0</int> </lst> <lst name="region"> <int name="011">19</int> <int name="006">6</int> ... <int name="003">0</int> <int name="010">0</int> <int name="013">0</int> </lst> </lst></lst>

Page 21: Guided Navigation - Beispiele von Schweizer Websites

Multi Facet Selection mit Exclusion

facet.field={!ex=xy1}branch&fq={!tag=xy1}branch:versicherungen&

facet.field={!ex=xy2}region&fq={!tag=xy2}region:(011 OR 006)

Die counts der nicht selektionierten Facet Values sind zusätzliche Treffer, wenn der entsprechende Facet Value selektioniert wird

<lst name="facet_counts"> <lst name="facet_fields"> <lst name="branch"> <int name="humanresources">121</int> ... <int name="versicherungen">25</int> ... <int name="banken">13</int> <int name="informatik">2</int> <int name="freizeitkultursport">1</int> <int name="elektronikelektrotechnik">0</int> </lst> <lst name="region"> <int name="011">19</int> ... <int name="006">6</int> ... <int name="003">5</int> <int name="007">5</int> </lst> </lst></lst>

Page 22: Guided Navigation - Beispiele von Schweizer Websites

Range Facets

facet.field=branch&fq=branch:versicherungen&

facet.range=pubdate&

facet.range.start=NOW-6DAY/DAY

facet.range.end=NOW/DAY

facet.range.gap=+1DAY

Gruppierung der Treffer nach konstanten zeitlichen oder numerischen Abständen

<lst name="facet_counts"> <lst name="facet_queries"/> <lst name="facet_fields"> <lst name="branch"> <int name="versicherungen">59</int> </lst> </lst> <lst name="facet_dates"/> <lst name="facet_ranges"> <lst name="searchsubtimestamp"> <lst name="counts"> <int name="2011-12-08T00:00:00Z">4</int> <int name="2011-12-07T00:00:00Z">5</int> <int name="2011-12-06T00:00:00Z">7</int> <int name="2011-12-05T00:00:00Z">3</int> <int name="2011-12-04T00:00:00Z">2</int> <int name="2011-12-03T00:00:00Z">1</int> </lst> </lst> </lst></lst>

Page 23: Guided Navigation - Beispiele von Schweizer Websites

Facet Queries

facet.field=branch&fq=branch:versicherungen&

facet.query=pubdate:[NOW-7DAY TO *]

facet.query=pubdate:[NOW-21DAY TO *]

Gruppierung der Treffer in beliebigen Abständen

Als Query können auch komplexe Funktionen mit Index Feldern verwendet werden

<lst name="facet_counts"> <lst name="facet_fields"> <lst name="branch"> <int name="versicherungen">59</int> </lst> </lst> <lst name="facet_queries"> <int name="pubdate:[NOW-7DAY TO *]">24</int> <int name="pubdate:[NOW-21DAY TO *]">31</int> </lst></lst>

Page 24: Guided Navigation - Beispiele von Schweizer Websites

Hierarchische Facets

facet.field=sectionmain&fq=sectionmain:(004 OR 017)facet.field=sectionsub&fq=sectionsub:(004.012 OR 017.*)

Anzeige aller Child Facets mit Parent = 017Parent / Child Auswahl für 004.012

sectionmain und sectionsub sind Multi Valued, Anzeige der weiteren Facet Values

<lst name="facet_counts"> <lst name="facet_queries" /> <lst name="facet_fields"> <lst name="sectionmain"> <int name="017">27</int> <int name="004">12</int> <int name="005">3</int> <int name="013">3</int> </lst> <lst name="sectionsub"> <int name="017.091">13</int> <int name="004.012">12</int> <int name="017.130">8</int> <int name="017.129">5</int> <int name="013.052">3</int> <int name="005.027">2</int> <int name="005.044">1</int> <int name="017.083">1</int> </lst> </lst></lst>

Page 25: Guided Navigation - Beispiele von Schweizer Websites

Response Time Solr Request

• Response Time für Facetierung mit Selektion von Values ist auch für grosse Datenmengen (> 1 Mio) kleiner als 10 ms

• Auch in Verbindung mit Semantic Search/Volltextsuche bleibt die Response Time hoch performant

Caching der Filter Queries, Autowarming der Caches nach insert von Daten

Page 26: Guided Navigation - Beispiele von Schweizer Websites

Faceted Search Facts I

• Ein klickbarer Prototyp hilft die vielfältigen Möglichkeiten der Datenanalyse zu diskutieren

• Die Komplexität der Datenanalyse ist vor dem User zu verbergen

• Default Ranges, [A-Z] Buckets, Suggest und Hierachische Facets verwenden

Komplexität der Faceted Search, Analyse, Tricks

Page 27: Guided Navigation - Beispiele von Schweizer Websites

Faceted Search Facts II

• Mehrfachselektion ist bei Single Value Feld gut einsetzbar

• Mehrfachselektion auf Multivalue Felder wir im Allgemeinen schlecht verstanden

• Eine grosse Menge an Facet Values ist eine Herausforderung für die Usability

Enfach/Mehrfach Selektion von Facet Values

Page 28: Guided Navigation - Beispiele von Schweizer Websites

Beyond Faceting

Semantic Search

Multilanguage

Analyzing / Data Processing

Scaleability / Cloud

Big / Small Data Management

Recommendation Engine

Machine LearningMatchingCategorisation

Autosuggest

Spell Checking

More Like This

Result Highlighting

Geo-Search

Flexible Ranking

Page 29: Guided Navigation - Beispiele von Schweizer Websites

Slides: http://e-byz.chhttp://spectromedia.ch

Walter Schärer verantwortet als Senior Projektleiter Internetprojekte unterschiedlicher Ausprägung.

Daniel Nydegger ist als Software Architekt und Senior Entwickler für die Umsetzung von Webapplikationen im Open Source Umfeld tätig.

https://www.xing.com/profile/Walter_Schaerer

https://www.xing.com/profile/Daniel_Nydegger3

Web-Beispiele für Multi-Faceted-Navigation:

www.vacando.ch www.migros-ferien.ch www.jobwinner.chwww.movies.chwww.tutti.chfundlab.credit-suisse.com


Top Related