Elasticsearch — słowo o usprawnieniu wyszukiwania w sklepie internetowym (i nie tylko)

Elasticsearch, czyli wyszukiwarka na sterydach. Dowiedz się jak możesz zoptymalizować wyszukiwarkę na swojej stronie internetowej, wykorzystując potężne narzędzie, jakim jest Elasticsearch.

Jeśli prowadzisz stronę lub sklep internetowy, na której jest możliwość wyszukiwania, na pewno zdajesz sobie sprawę z ograniczeń, które mają systemy wyszukiwania wbudowane w CMS-y.

Literówki wprowadzone przez użytkownika, odmiana poszczególnych fraz, filtrowanie po personalizowanych pola zamiast po treści… To niestety w większości zadania bardzo trudne (jeśli nie niemożliwe) do osiągnięcia tradycyjnymi metodami.

Kiedy jest to jednak ważne z punktu widzenia prowadzonej przez nas działalności – z pomocą przychodzi nam Elasticsearch.

Co to jest Elasticsearch?

Elasticsearch — najprościej mówiąc — jest to silnik wyszukiwania pełnotekstowego. Od strony technicznej Elasticsearch to baza danych, wykorzystująca Apache Lucene — bibliotekę Open Source, która oferuje funkcje wyszukiwania informacji (zbieranie, indeksowanie oraz wyszukiwanie tekstu).

Zastosowane technologie pozwalają na kompleksowe wyszukiwanie nawet w ogromnych zbiorach danych — i to z ogromną wydajnością (w zależności od konfiguracji i stopnia dokładności wyniki możemy otrzymywać praktycznie w czasie rzeczywistym).

Czym jest wyszukiwanie pełnotekstowe? Jest to po prostu metoda przeszukiwania zbiorów danych z uwzględnieniem odmiany wyrazów, potencjalnych błędów ortograficznych, synonimów, etc.

Jak usprawnić wyszukiwarkę w sklepie internetowym?

Wyszukiwarki znajdują się oczywiście zarówno na zwykłych stronach internetowych, jak i na sklepach (a także w aplikacjach magazynujących ogromne ilości danych — np. katalogi, etc.). Dla uproszczenia jednak w tym wpisie posłużymy się przykładem sklepu internetowego z dużym asortymentem.

“Duży” asortyment w wypadku sklepu internetowego to kilkaset tysięcy produktów — wtedy chcąc wyszukać poszczególne dane, możemy już sprawić kłopoty wyszukiwarce chcąc wyszukać poszczególne produkty — zwłaszcza, gdy wpisana przez nas fraza nie będzie dokładną nazwą produktu.

Użytkownik może wpisać przecież dowolną frazę — atrybut, markę producenta, nazwę, etc… Tworząc zapytanie w sposób “tradycyjny” — tj. korzystając z zapytania SQL może być nam ciężko o stworzenie takiego, które będzie jednocześnie skuteczne, jak i wydajne.

Z pomocą przychodzi nam właśnie Elasticsearch, który pozwala na przypisanie wag do poszczególnych pól, dzięki czemu możemy zdecydować, które pola są ważniejsze dla użytkownika sklepu — czy będzie to marka (np. “bluza adidas”), czy może kolor (np. “czerwona bluza”).

Wyszukiwarka na stronie internetowej, która obsługuje literówki użytkownika

No dobrze — wagi przy polach nie wydają się przesadnie skomplikowane. Ale co jeśli użytkownik pomyli się w trakcie wpisywania frazy w okienko wyszukiwarki?

Na przykładzie jednej z naszych realizacji – Krajowego Rejestru Domów Opieki. Hipotetyczny użytkownik chcący znaleźć dom opieki w powiecie oleśnickim wpisał konkretną frazę – jednakże z rozpędu wpisał “powiat olensicki” zamiast “powiat oleśnicki”. Normalna wyszukiwarka miałaby z tym problem, prawda?

Jednakże nie Elasticsearch! Dzięki odpowiedniej konfiguracji wag pól oraz “odrobiny magii” – o czym później, wynik dla wpisanej frazy prezentuje się następująco:

wyniki wyszukiwania Elasticsearch - krdo.pl
przykład wyszukiwarki korzystającej z Elasticsearch – krdo.pl

Jak widzimy — żaden z wyników nie ma w nazwie frazy wprowadzonej przez użytkownika (co więcej – brak również informacji o powiecie) — tutaj właśnie przejawia się ogromna siła wyszukiwarki opartej o Elasticsearch – wykorzystane zostały wagi pól oraz tzw. “fuzzy search” wyszukiwanie korzystające z Odległości Levensteihna (co to jest – odpowiedź w FAQ na dole wpisu).

Czy Elasticsearch to jedyne skuteczne rozwiązanie na usprawnienie działania wyszukiwarki?

Nie. Istnieje kilka alternatywnych rozwiązań, takich jak np. Sphinx, Apache Solr, czy nawet Algolia. Jednakże w naszej opinii Elasticsearch jest jednym z lepszych rozwiązań, które z pewnością możemy polecić każdemu, komu zależy na wydajnej wyszukiwarce na stronie lub sklepie internetowym.

Potrzebujesz wydajnej wyszukiwarki dla swojego projektu?

Elasticsearch – pytania i odpowiedzi

Czym jest Elasticsearch?

Elasticsearch to silnik wyszukiwania pełnotekstowego oparty o otwartoźródłową bibliotekę Apache Lucene. Jest to oprogramowanie Open Source, ale istnieją również plany abonamentowe, które pozwalają na skorzystanie z silnika wyszukiwarki w modelu SaaS.

Do czego można wykorzystać Elasticsearch?

Elasticsearch można wykorzystać jako silnik wyszukiwania dla sklepu internetowego, rejestru, albo do dowolnej aplikacji, której ważnym punktem jest wyszukiwarka.

Jak usprawnić wyszukiwarkę w sklepie internetowym?

W celu usprawnienia wyszukiwarki warto skorzystać z silnika wyszukiwania pełnotekstowego, takiego jak np. Elasticsearch, Sphinx, Apache Solr, czy też Algolia.

Co to jest wyszukiwanie pełnotekstowe?

Wyszukiwanie pełnotekstowe jest to rodzaj wyszukiwania, który umożliwia sprawne i wydajne przeszukiwanie ogromnych zbiorów danych wg kryteriów określonych przez użytkownika – takich jak np. odmiana wyrazów, błędy ortograficzne, synonimy, etc.

Ile kosztuje Elasticsearch?

Elasticsearch jest oprogramowaniem Open Source – czyli możesz zainstalować je na swoim serwerze za darmo, ale istnieją również plany abonamentowe, które pozwalają na skorzystanie z silnika wyszukiwarki w modelu SaaS.

Czym jest Odległość Levensteihna?

Odległość Levensteihna jest to miara odległości napisów zaproponowana w 1965 roku przez Władimira Levensteihna. Najprościej rzecz biorąc jest to ilość działań, które różnią dwa napisy – dla przykładu: granit vs granat (OL = 1, bo wystarczy zamienić “a” na “i”), orczyk vs oracz (OL = 3, gdyż należy usunąć “y” oraz “k”, a także dodać “a”).

Jak działa Elasticsearch?

Elasticsearch działa w oparciu o indeksy – kolekcje dokumentów o zbliżonej charakterystyce (bardzo uproszczając – indeks do odpowiednik bazy danych w modelu relacyjnym). W trakcie wyszukiwania silnik ten przeszukuje wyszukiwaniem pełnotekstowym wcześniej zindeksowane dokumenty i zwraca te, które najlepiej odpowiadają na zapytanie użytkownika.

Był pomocny?

Cieszymy się, że ten artykuł okazał się pomocny.

Mogą Ci się spodobać

Inne w tej kategorii

    Porozmawiajmy
    Jak możemy pomóc Twojej firmie