Solr 7.0 – pole typu Point (szybkie spojrzenie)

Wraz ze zbliżającą się wielkimi krokami premierą Solr 7.0 postanowiliśmy podzielić się z Wami ważnymi informacjami dotyczącymi zmian, jakie zajdą w tym silniku wyszukiwania. Na pierwszy ogień pola typu Point.

Nowy typ pól

Oprogramowanie się rozwija, zmieniają się algorytmy, dodawane są nowe funkcjonalności, zmieniane są struktury danych. Jedną ze zmian jakie zaszły pomiędzy kolejnymi wersjami Lucene są pola typu Point. Pola te zostały wprowadzone już w Lucene 6.x, ale Solr musiał poczekać do wersji 7, aby pojawiło się dla nich wsparcie.

Pola typu Point

Pola typu Point zbudowane są w oparciu o tzw. bloki K-D, które podczas indeksowania i wyszukiwania rekurencyjnie dzielą przestrzeń wartości na miejsze prostokątne przestrzenie umożliwiając szybkie wyszukiwanie. Z punktu widzenia Lucene wykorzystywane są po prostu tablice typu byte. Wydaje się to rozwiązaniem prostym, ale jest bardzo wydajne i widać to w testach.

Po stronie Solr konfiguracja jest bardzo prosta i wygląda następująco:

<fieldType name="pint" class="solr.IntPointField" docValues="true"/>
<fieldType name="pfloat" class="solr.FloatPointField" docValues="true"/>
<fieldType name="plong" class="solr.LongPointField" docValues="true"/>
<fieldType name="pdouble" class="solr.DoublePointField" docValues="true"/>

<fieldType name="pints" class="solr.IntPointField" docValues="true" multiValued="true"/>
<fieldType name="pfloats" class="solr.FloatPointField" docValues="true" multiValued="true"/>
<fieldType name="plongs" class="solr.LongPointField" docValues="true" multiValued="true"/>
<fieldType name="pdoubles" class="solr.DoublePointField" docValues="true" multiValued="true"/>

Jedna rzecz rzuca się w oczy – wszędzie wykorzystywane doc values. Jest to konieczne jeżeli chcemy korzystać z funkcjonalności, które korzystają z FieldCache. Pola typu Point nie wspierają FieldCache, a tym samym jesteśmy „skazani” na doc value, co oczywiście nie jest niczym złym. Musimy tylko pamiętać, iż jeżeli chcemy sortować, wykorzystywać funkcje, czy facteting po polach typu Point musimy włączyć doc values.

Pola typu Trie

Co w takim wypadku dzieje się z polami typu Trie? Dokładnie to samo co z wcześniejszymi typami pól, które kiedyś były obecne w Solr, a teraz ich już nie ma. W wersji 7.0 Solr pola typu Trie oznaczone są jako przestarzałe, co oznacza, że w przyszłych wersjach Solr (najprawdopodobniej w wersji 8.0) zostaną one usunięte. Oczywiście, na razie, możemy dalej z nich korzystać, ale sugeruję myśleć o przesiadce na typ Point przy okazji najbliższej ponownej indeksacji danych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners. View more
Cookies settings
Accept
Privacy & Cookie policy
Privacy & Cookies policy
Cookie name Active
Save settings
Cookies settings