Może i w ostatnich czasach coraz częściej podaje się w wątpliwość to, czy wyszukiwarka Elasticsearch jest tak bardzo opensource’owa, jak chciałby to pokazać jej producent, firma Elastic, ale wciąż pozostaje ona najpopularniejszym rozwiązaniem w tej klasie oprogramowania, wygrywając z czysto opensource’owym Apache Solr (korzysta z Elasticsearch m.in. Wikipedia). Dlatego też pojawienie się w ostatnich dniach całego nowego zestawu oprogramowania Elastic Stack 7.0 nie może przejść bez echa.
Typy zbyt ograniczały
Przejście na nową wersję może nie być bezbolesne. Wszystko za sprawą procesu porzucania koncepcji typów, rozpoczętego wraz z wydaniem Elasticsearch 5.0. Miały one być wygodnym sposobem na przechowywanie wielu rodzajów danych w jednym indeksie, jednak narzucały zarazem ograniczenia związane z wydajnością i usztywniały architekturę rozwiązań bazujących na tej wyszukiwarce.
Wersja 7.0 z jednej strony jest pierwszą, w której API obsługujące typy uznano za przestarzałe (na całkowite porzucenie przyjdzie czas w wersji 8.0), z drugiej zaś wprowadza beztypowe odpowiedniki tych API. Firma Elastic sugeruje, by wszyscy ci, którzy nie są gotowi na tę zmianę, zrobili aktualizację do wersji 6.7. Zaleca się też przekazywanie wartości include_type_name do interfejsów tworzenia indeksu, szablonów i odwzorowań i zaprzestanie korzystania z _default_mappings.
Zobacz też: Nie znosisz JavaScriptu? CSHTML5 odtąd z otwartym kodem i nowymi funkcjami
Szybciej dostaniesz to co najważniejsze
Odejście od typów to oczywiście nie wszystko. Z nowych wartych uwagi rzeczy warto zwrócić uwagę na możliwość szybkiego pokazania tylko górnego k wyników, zamiast wszystkich. Ma to szczególny sens w sklepach internetowych – jak pisze Elastic na swoim blogu, jeśli ktoś szuka w sklepie produktu, to jest bardziej zainteresowany 10 najistotniejszymi wynikami, niż innymi 120 897 wynikami. Teraz, dzięki algorytmowi Block-Max WAND uzyskano ogromny wzrost wydajności dla wyszukania tych najlepszych trafień.
Na bazie tego algorytmu wprowadzono dwa nowe typy pól, pozwalające efektywniej wykorzystać dane – rank_feature i rank_features. Mogą one zostać użyte do zwiększenia rankingu dokumentów w oparciu o wartości liczbowe lub kategorialne przy jednoczesnym zachowaniu wydajności nowych funkcji wyszukiwania.
Kolejna ciekawa nowość to zapytania dotyczące odstępów. Otóż niektóre przypadki wyszukiwania, na przykład wyszukiwanie prawne i patentowe, wprowadzają potrzebę znalezienia zapisów, w których słowa lub zwroty znajdują się w pewnej odległości od siebie. Interwały zapytań w Elasticsearch 7.0 pozwalają na nowy sposób strukturyzacji takich zapytań i są znacznie prostsze w użyciu i definiowaniu w porównaniu z poprzednią metodą (zapytaniami zakresowymi), są też odporniejsze na skrajne przypadki.
Nowa wersja wyszukiwarki wprowadza ulepszoną funkcję punktacji, która zapewnia prostszy i bardziej elastyczny sposób generowania wyniku rankingowego na rekord, pozwalając na lepszą kontrolę relewantności i rankingu wyników. Programiści mogą teraz dowolnie łączyć funkcje arytmetyczne i funkcje odległości, co pozwala im dowolnie modyfikować to, jak wyniki będą oceniane i klasyfikowane.
Zobacz też: Marzipan – nadchodzi wspólne SDK dla iPhone’ów, iPadów i Maców
Dokładnie, co do nanosekundy
Inne ciekawe nowości to zwiększenie dokładności rejestracji czasu z milisekund do nanosekund, co zapewni użytkownikom zbierającym dane z wysoką częstotliwością precyzję wymaganą do dokładnego przechowywania i porządkowania tych danych.
Poprawiono też narzędzie wizualizacji Kibana – zmiany mają zapewnić większą przejrzystość informacji. Dostępny jest też tryb ciemny w całym narzędziu. Ułatwiono nawigację, pomaga w tym stały nagłówek do przełączania między przestrzeniami, czy wyświetlania okruszków.
Więcej na temat nowej wersji tej doskonałej wyszukiwarki znajdziecie na blogu producenta. A jeśli macie wątpliwości co do licencjonowania, zawsze można zainteresować się dystrybucją Amazonu, Open Distro for Elasticsearch , w którym na pewno wszystko jest na licencji Apache 2.0.