Prezentacja przygotowana dla: 5. Konferencja MIC w Poznaniu, 16.06.20111 Lucene.NET Indeksowanie full text search w chmurze
K2 i Windows Azure dlaczego dla nas to możliwe? 1. Mamy unikalne połącznie kompetencji = strategia, kreacja, technologia 2. Chcieliśmy poznać, nauczyć się nowej technologii Microsoftu 3. Pracujemy tylko na sprawdzonych systemach 2
Grupa K2 Od 1997 roku jesteśmy strategicznym partnerem największych organizacji na polskim rynku dostarczając innowacyjne rozwiązania w zakresie marketingu, sprzedaży i obsługi klienta. Agencja interaktywna full service Hosting zarządzany Integrator IT Interaktywny Dom mediowy od 1997 roku od 1997 roku od 2005 roku od 2005 roku ZESPÓŁ OSÓB 3
Portfolio usług Grupy K2 4
Najwięksi Klienci K2 pracowało na rzecz ponad 100 Klientów największych firm polskich i międzynarodowych z większości liczących się w Internecie branż. 14 lat doświadczenia w obsłudze polskich i światowych marek; 7 lat stałej współpracy z coca-cola, 5 lat z Play, 9 z volvo; 10 z Ikea, 2 lata Microsoft 5
Agenda 1. Tło portale wss.pl i codeguru.pl 2. Lucene.NET trochę teorii 3. Azure i Lucene.NET 4. Architektura Lucene.NET w portalach wss.pl i codeguru.pl 5. Trochę o wydajności 6. Demo 6
Tło portale wss.pl i codeguru.pl
Krótko o portalach Duże portale skupiające społeczności IT programiści codeguru.pl administratorzy i profesjonaliści IT wss.pl Treści generowane przez użytkowników forum artykuły aktualności 8
Umieszczenie portali na Windows Azure Środowisko uruchomieniowe system Windows Azure i IIS praktycznie bez różnic w stosunku do klasycznego IIS zadania cykliczne i typu background uruchamiane na workerach Źródła danych SQL Azure (9.99$/GB/miesiąc) relacje i transakcyjność Azure Storage (0.15$/GB/miesiąc) skalowalność 9
Forum koncepcja przechowywania danych Treść postów w Azure Storage tekst, zdjęcia, HTML duża zajętość pamięci Relacje w SQL Azure nadrzędność i podrzędność wątków informacje o autorze, itp. Problem szukamy słów kluczowych Azure Storage brak mechanizmów wyszukiwania SQL Azure brak mechanizmu Full Text Search 10
Lucene.NET trochę teorii
Czym jest Lucene? Wysoce wydajna i skalowalna biblioteka do wyszukiwania informacji (ang. information retrieval) Umożliwia budowę indeksu dokumentów na podstawie tekstu Umożliwia wyszukiwanie dokumentów w indeksie na podstawie zapytań 12
Szerokie możliwości Lucene Ranking odpowiedzi Obsługa różnych źródeł danych Sterowanie wagami podczas wyszukiwania Wyszukiwanie synonimów Zaawansowana normalizacja tekstu tokenizacja usuwanie stopword możliwość dowolnej rozbudowy 13
Szerokie możliwości Lucene cd. Zaawansowane budowanie zapytań PhraseQuery WildcardQuery FuzzyQuery Sortowanie i filtrowanie odpowiedzi TermVectors częstotliwości występowania wyrażeń Fleksja stemming analysis 14
Przykładowa składnia zapytań Lucene azure AND windows +azure +windows azure OR windows azure NOT phpazure php Microsoft Innovation Center title:azure a?zure az* schmidt~ schmidt, schmit, schmitt 15
Lucene.NET Port biblioteki Javowej Lucene Biblioteka do indeksowania i wyszukiwania Pracuje na dokumentach dokument ma zbiór pól, pola zawierają czysty tekst szukanie łańcuch wyrażeń lub obiekt Query indeks zapisywany w postaci kilku\kilkunastu plików brak wbudowanych konwerterów dokumentów 16
Azure i Lucene.NET
Czemu Lucene.NET w Azure? Brak Full Text Search w SQL Azure Wydajność i skalowalność Możliwość indeksowania dokumentów z wielu źródeł danych Adapter AzureDirectory umożliwia przechowywanie indeksu w Azure Storage (BLOB) LINQtoLucene.NET 18
Architektura Lucene.NET
Architektura w portalach wss.pl i codeguru.pl 20
Trochę o wydajności
Indeksowanie zawartości portali wss i codeguru Indeksowanie użytkowników (jeden worker SmallInstance) login, e-mail, imię, nazwisko, miasto około 100.000 rekordów czas: 36 [s] Indeksowanie aktualności (jeden worker SmallInstance) tytuł, streszczenie(około 300 znaków), treść (około 3000 znaków), login autora około 9.000 rekordów czas: 32 [s] 22
DEMO
Dziękuję za uwagę Mariusz Pazur mariuszp@k2.pl K2 Internet S.A. 02-670 Warszawa, ul. Puławska 182 tel. (48 22) 448 70 00, faks (48 22) 448 71 01,, biuro@k2.pl NIP: 951-19-83-801, Regon: 016378720, KRS: 0000059690, Wysokość kapitału zakładowego 2.026.000,00 PLN