media Wyszukiwanie pełnotekstowe z wykorzystaniem Search Engine

Podobne dokumenty
Multimedialne bazy danych. Andrzej Łachwa, WFAiIS UJ 2011

Technologie wyszukiwania pełnotekstowego

Język SQL, zajęcia nr 1

NARZĘDZIA WIZUALIZACJI

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

dziennik Instrukcja obsługi

NARZĘDZIA WIZUALIZACJI

Wykład 05 Bazy danych

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych 12. SQL Wyszukiwanie pełnotekstowe

Projektowanie systemów baz danych

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Rozwiązania bazodanowe EnterpriseDB

Full Text Search. Study Group Tomasz Libera

Indeksowanie full text search w chmurze

Liczniki odwiedzin. Licznik odwiedzin na plikach

Bazy danych. Polecenia SQL

Wielojęzykowość w aplikacjach J2EE. Tomasz.Skutnik@e-point.pl

Zasady współpracy programu Doradca Handlowy z Symfonią

Przetwarzanie danych z wykorzystaniem technologii NoSQL na przykładzie serwisu Serp24

Administracja bazami danych. dr inż. Grzegorz Michalski

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Wdrożenie modułu płatności eservice. dla systemu Magento

Data modyfikacji:

Instalacja (GM) AMXBans #1.5.1/ #1.6.1 na serwerze gry/stronie WWW. Wymagania

Dokumentacja SQL API 1

Bazy danych 7. SQL podstawy

Seeon Enterprise Search Engine. Rozwiązanie obsługiwane przez eo Networks S.A.

Struktura drzewa w MySQL. Michał Tyszczenko

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Programowanie w Ruby

NARZĘDZIA WIZUALIZACJI

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

WEBCON BPS Instalacja Standalone

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Firebird Alternatywa dla popularnych darmowych systemów bazodanowych MySQL i Postgres

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Podstawy Pentaho Data Integration

Database Connectivity

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Bazy Danych i Usługi Sieciowe

Indeksowanie w bazach danych

Wordpress. Wstęp do tworzenia pluginów. Piotr Wasilewski wasilewski.piotrek (at) gmail.com

Tuning SQL Server dla serwerów WWW

Instalacja SQL Server Konfiguracja SQL Server Logowanie - opcje SQL Server Management Studio. Microsoft Access Oracle Sybase DB2 MySQL

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Wybrane narzędzie do zarządzania błędami - Bugzilla. Krzysztof Palinka Konrad Błaszkiewicz grupa nr 27

Wykład 5. SQL praca z tabelami 2

Temat projektu: mpk-database

Podstawowe wykorzystanie Hibernate

Program kadrowo płacowy - wersja wielodostępna z bazą danych Oracle SQL Server 10g

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java

Bazy danych 6. Klucze obce. P. F. Góra

IBM SPSS Modeler Social Network Analysis 16 podręcznik instalowania i konfigurowania

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Bazy danych i usługi sieciowe

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Wykład 6. SQL praca z tabelami 3

Podyplomowe Studium Programowania i Baz Danych

Politechnika Częstochowska. Projektowanie systemów użytkowych II

Instalator umożliwia zainstalowanie aplikacji klienckiej na komputerze użytkownika końcowego. Na instalator składają się następujące funkcje:

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

Wersjonowanie baz danych podczas developmentu. Liquibase. Piotr Pelczar.

Laboratorium 3. Odkrywanie reguł asocjacyjnych.

Szkolenie autoryzowane. MS Zaawansowany użytkownik programu SharePoint 2016

Bezpieczeństwo systemów informatycznych

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Słonie pracują w stadzie

Extranet narzędzie zapewniające kontrolę i usprawniające współpracę z oddziałami spółki oraz partnerami zewnętrznymi.

Zaawansowane bazy danych i hurtownie danych studia niestacjonarne II stopnia, sem. I

Zrąb webowy dla perfekcjonistów z terminami. autor: Kamil Adamczyk

Co to jest Baza Danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Internetowe bazy danych

Dokumentacja fillup - MS SQL

Internetowe bazy danych

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2

Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Podstawy technologii WWW

6. Bezpieczeństwo przy współpracy z bazami danych

Wykład 4. SQL praca z tabelami 1

Strategia ELO Multi-Client

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. dr inż. Adam Piórkowski. Jakub Osiadacz Marcin Wróbel

Zarządzanie danymi przestrzennymi. Analizy przestrzenne

Podstawy programowania III WYKŁAD 2

Jak przenieść bazę danych na zdalny serwer?

Transkrypt:

Wyszukiwanie pełnotekstowe z wykorzystaniem Search Engine

Wyszukiwanie pełnotekstowe (ang. full-text search) - co to jest? Jest sposobem przeszukiwania danych tekstowych, który bazuje na analizie poszczególnych słów danej frazy w przeszukiwanym tekście.

Jak to działa? Przetworzenie dokumentu tekstowego Utworzenie wektora słów zawartych w dokumencie Eliminacja stop-słów (usuwanie szumu z, ale, od, tam ) Lematyzacja lub stemming (sprowadzanie do podstawowej formy: samochody samochód) Utworzenie indeksu FTS

Dostępne na rynku narzędzia Sphinx Search Engine (C++) Solr (bazujący na bibliotece Lucene, JAVA) DataparkSearch (C) Ferret (Ruby) mnogosearch (C)

Sphinx podstawowa funkcjonalność Prędkość indeksowania (do 10-15 MB/sek na jednym rdzeniu procesora); Prędkość wyszukiwania (do 150-250 zapytań/sec na jednym rdzeniu, 1 000 000 dokumentów, 1.2 GB wielkość indeksu); Wysoka skalowalność (największy znany klaster to 3,000,000,000 dokumentów i największym obciążeniu 50,000,000 zapytań/dzień); Wysoka jakość wyników (posiada kilka modeli wagowania wyników) Możliwość rozproszonego wyszukiwania Generowanie snippetów

Sphinx podstawowa funkcjonalność Możliwość wyszukiwania poprzez SphinxAPI, SphinxQL oraz w samym MySQL u (posiada własny silnik magazynowania danych SphinxSE); Obsługa stop-słów (stopwords); Obsługa własnych słowników odmian (algorytm bądź słownik); Stemowanie (wbudowane stemmery dla języków: angielskiego, rosyjskiego oraz czeskiego; wsparcie dla większej ilości języków poprzez bibliotekę libstemmer polskiego nadal brak); Tokenizacja (usuwanie znaków specjalnych); Wbudowane wsparcie dla MySQL, PostgreSQL oraz wszystkich baz zgodnych z ODBC (Open DataBase Connetcivity) (MS SQL, Oracle, etc)

Instalacja pod Windowsem Po rozpakowaniu archiwum należy zainstalować searchd jako usługę. W tym celu w konsoli wpisujemy (jako administrator): C:\Sphinx\bin\searchd --install --config C:\Sphinx\sphinx.conf --servicename SphinxSearch Następnie dodajemy do ścieżki systemowej C:\Sphinx\bin Abyśmy mogli cokolwiek przetestować musimy skonfigurować źródło danych i utworzyć indeks - o tym w dalszej części

Instalacja pod Linuxem Gentoo: USE= mysql (postgres) (-debug) (id64) (stemmer) emerge app-misc/sphinx Debian: apt-get install sphinxsearch

Podstawowe moduły indexer - główne narzędzie, tworzy index search - narzędzie do testowania stworzonych indeksów searchd - demon dzięki któremu zewnętrzne aplikacje lub API mogą przeszukiwać indeksy SphinxAPI - zbiór api dla różnych języków programowania (PHP, JAVA, Python, Ruby, C)

Konfiguracja (sphinx.conf) sekcje source nazwa_zrodla #ustawienia źródła danych np. MySQL index nazwa_indexu #ustawienia indexu indexer #ustawienia indexera (limity pamięci etc.) searchd #ustawienia deamon a sphinxa

source (źródła danych) Pełna lista opcji: http://sphinxsearch.com/docs/2.0.4/confgroup-source.html source ogloszenia type = mysql sql_host = 127.0.0.1 sql_user = sphinx_user sql_pass = tajnehaslo!@# sql_db = cms sql_port = 3306 sql_query_pre sql_query sql_query_info = SET NAMES utf8 = SELECT tytul, tresc, autor, streszczenie FROM artykuly\ WHERE publikuj = 1 = SELECT id FROM artykuly WHERE id=$id

index Pełna lista opcji: http://sphinxsearch.com/docs/2.0.4/confgroup-index.html index artykuly source = artykuly path = /var/lib/sphinx/artykuly min_word_len = 2 html_strip = 1 morphology = stem_en stopwords = /etc/sphinx/language/pl/stop_words_pl.txt wordforms = /etc/sphinx/language/pl/pl_dict.txt charset_type = utf-8 #zmienia wielkość liter z dużych na małe ignore_chars = U+002D, U+00AD charset_table = \

indexer Pełna lista opcji: http://sphinxsearch.com/docs/2.0.4/confgroup-indexer.html indexer mem_limit = 2M write_buffer = 1M max_iops = 40 max_iosize = 1048576

searchd Pełna lista opcji: http://sphinxsearch.com/docs/2.0.4/confgroup-searchd.html searchd listen = 9312 log = /logs/searchd.log query_log = /logs/query.log read_timeout = 2 max_children = 2 pid_file max_matches = 10000 seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 compat_sphinxql_magics = 0 workers = fork = /var/run/sphinx/searchd.pid

Przyrostowy indeks main + delta # Nowa tabela w MySQL CREATE TABLE sph_counter ( counter_id INTEGER PRIMARY KEY NOT NULL, max_doc_id INTEGER NOT NULL );

Edytujemy sphinx.conf source main #... sql_query_pre = SET NAMES utf8 sql_query_pre = REPLACE INTO sph_counter SELECT 1, MAX(id) FROM artykuly sql_query = SELECT id, tytul, tresc, streszczenie FROM artykuly \ WHERE id<=( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 ) AND publikuj = 1 index main source = main path = /sciezka/do/main #... pozostałe ustawienia

Wszystkie inne ustawienia kopiowane są z main do delta, ale source i ścieżka są nadpisywane index delta : main source = delta path = /path/to/delta source delta : main sql_query_pre = SET NAMES utf8 sql_query = SELECT id, tytul, tresc, streszczenie FROM artykuly \ WHERE id>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )\ AND publikuj = 1

Dziękuję za uwagę! Łukasz Wrucha Starszy programista tel.: +48 505 619 328 e-mail: lukasz.wrucha@supertraders.pl www.supertraders.pl - Twoja nawigacja w Biznesie