Technologie wyszukiwania pełnotekstowego
LICZBA DNI: 3 (24h)
KOD KURSU: FULLTEXT
O szkoleniu
DLA KOGO?
Szkolenie adresowane jest do osób zainteresowanych funkcjonalnością wyszukiwania pełnotekstowego i różnych sposobów jej wykorzystania
WYMAGANIA
Od uczestników wymagana jest podstawowa umiejętność znajomość baz danych i języka SQL oraz programowania w języku Java
ZALETY
Program obejmuje całościowo i wyczerpująco zagadnienia związane z wyszukiwaniem pełnotekstowym, przedstawia wiele ciekawych aspektów, typowe problemy oraz najlepsze praktyki
Warsztat, który pozwoli na ugruntowanie wiedzy w praktycznych aspektach
Cele szkolenia
Poznanie czym jest wyszukiwanie pełnotekstowe, zagadnienia z nim związane, jakie są możliwości jego realizacji oraz najlepsze praktyki
Poznanie szerokiej gamy produktów realizujących tą funkcjonalność uwzględniając rozwiązania zarówno bazodanowe jak i dedykowane biblioteki programistyczne, w szczególności te wiodące na rynku jak Apache Lucene, Apache Solr, Sphinx Search czy Hibernate Search
Nauka zaprojektowania oraz oprogramowania systemu dostarczającego funkcjonalność wyszukiwania pełnotekstowego
Omówienie tematu w bardzo szerokim aspekcie tak, aby uczestnik był przygotowany do realizacji tego zadania tak, aby spełniło ono wszystkie wymagania oraz potrafił wybrać rozwiązanie najlepsze w danej sytuacji
Program
Koncepcja wyszukiwania pełnotekstowego
- Idea wyszukiwania pełnotekstowego (full-text search, FTS)
- Gdzie przydatne jest wyszukiwanie pełnotekstowe?
- Strony WWW
- Aplikacje webowe
- Bazy danych
- Poczta e-mail
Wyszukiwanie pełnotekstowe w szczegółach, typowe problemy
- Użycie LIKE
- Realizacja
- Stop-słowa
- Lematyzacja
- Stemming
- Morfologia języków
- Indeksy TF-IDF
- Ocena dopasowania szukanego tekstu do tekstu znalezionego
- Wyszukiwanie aproksymacyjne
- Indeksy w bazie danych
- Konfiguracja indeksów w bazie danych
- Miejsce przetrzymywania indeksów
- Wydajne indeksowanie
- Utrzymywanie indeksów
- Transakcyjność
- Architektura separacji odpowiedzialności komend i zapytań (Command Query Responsibility Separation - CQRS)
- Rozproszenie wyszukiwania
- Przeszukiwanie pełnotekstowe w plikach różnego formatu (PDF, XML, MS Office, ...)
- Skalowalność
Wsparcie wyszukiwania pełnotekstowego na poziomie źródeł danych
- Otwarte bazy danych
- MySQL
- Możliwości Fulltext
- Realizacja
- PostgreSQL
- Możliwości
- Realizacja
- Komercyjne bazy danych
- MS SQL Server
- Możliwości
- Realizacja
- Dostępność w produktach Microsoft Exchange i Microsoft SharePoint
- Zalety i wady
- Oracle
- Możliwości Oracle Text
- Realizacja
- IBM DB2
- NoSQL
Wsparcie wyszukiwania na poziomie dedykowanych bibliotek programistycznych i serwerów
- Apache Lucene
- Możliwości
- Realizacja
- Indeksowanie
- Wyszukiwanie
- Narzędzie do inspekcji indeksów - Luke
- Apache Solr
- Relacja z Apache Lucene
- Możliwości
- Przykłady wdrożeń
- Konfiguracja (Schema.xml, Solrconfig.xml)
- Realizacja
- Architektura
- Dokumenty
- Indeksy
- Pola dynamiczne
- Pluginy
- Faceted search
- Sphinx Search
- Możliwości
- Realizacja
- SphinxAPI, SphinxQL
- Główne moduły
- Konfiguracja - plik sphinx.conf
- Budowanie indeksów
- Zapytania
- Hibernate Search
- Możliwości
- Realizacja
- Integracja z Apache Lucene
- Konfiguracja: hiberante.cfg.xml i hibernate.properties, API do konfiguracji
- Architektura
- Adnotacje Hibernate Search: Indexed, Analyzer, ClassBridge, DocumentId
- Mapowanie encji
- Hibernate Analyzer
- Typy zapytań: TermQuery, WildcardQuery, PrefixQuery, PhraseQuery i inne
- API do wyszukiwania: Query, QueryBuilder i inne
- Strategie przebudowywania indeksu
- Inne
- Solandra
- Elasticsearch
- DataparkSearch
- Ferret
- mnoGoSearch
- Xapian
- Google Custom Search Index
