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.

This entry was posted on poniedziałek, Wrzesień 4th, 2017 at 06:56 and is filed under About Solr, Solr. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.