Apache Solr – user experience features

Oprócz implementacji podstawowych mechanizmów wyszukiwarki, Apache Solr dostarcza mnóstwo rozbudowanych funkcjonalności, by pomóc deweloperowi dostarczyć najlepszy „User Expierence” dla użytkowników. Ten wpis ma za zadanie szybkie wprowadzenie w ten temat.

  • Faceting. Jest to proces umożliwiający użytkownikom przeglądanie wyników wyszukiwania pogrupowanych za pomocą aspektów („facets”) opartych na zwróconych dokumentach. Dla przykładu, na stronie z ogłoszeniami o pracę oczekiwalibysmy, aby dało się przefiltrować wyniki wyszukiwania po mieście, kategorii, przemyśle czy nazwie firmy.W Apache Solr mamy trzy możliwe opcje facetingu:
    – field faceting – wyniki pogrupowane są po unikalnych wartościach znalezionych w wybranym polu.

    http://localhost:8983/solr/jobs/select?q=title:Java Developer&rows=0
    &facet=true
    &facet.field=category
    

    – query faceting – do zapytania wyszukujacego przekazujemy rowniez zapytania (queries), których wyniki chcielibysmy pogrupować. Na  przykładzie aplikacji z ogłoszeniami o pracę, „query faceting” można wykorzystąc do zaprezentowania użytkownikowi ilość ofert spełniających jego kryteria i zlokalizowanych w Warszawie i Krakowie lub Lublinie.

    http://localhost:8983/solr/jobs/select?q=title:Java Developer&rows=0
    &facet=true
    &facet.query=city:("Warszawa" OR "Kraków")
    &facet.query=city:("Lublin")
    

    – range faceting – pozwala uzyskiwać wyniki facetingu dla zakresu dat, kwot czy wartości numerycznych. W powyższym przykładzie, można tego użyć do prezentacji użytkownikowi ilości wyników spełniających jego kryteria w rozbiciu na przedziały oferowanych zarobków.

    http://localhost:8983/solr/jobs/select?q=title:Java Developer&rows=0
    &facet=true
    &facet.range=price
    &facet.range.start=0
    &facet.range.end=20000
    &facet.range.gap=500
    
  • Spell-checker. W erze urządzeń mobilnych i powszechnego dostępu do internetu poprawa pisowni to podstawa zbierania informacji od użytkownika. W Apache Solr spell-checker działa w dwóch trybach:
    – automatycznej korekty, jeśli przekręcona fraza znajduje się w indeksie,
    – „Czy chodziło Ci o …”, silnik Solr potrafi oprócz wyników wyszukiwania podpowiedzieć zapytanie, które może zwrócic bardziej dopasowane wyniki.  Trzeba podkreślić, że podpowiedzi generowane sa na podstawie danych w indeksie.
  • Hit-highlight. Funkcja szczegolnie przydatna do pracy z dokumentami z dużą ilością tekstu, gdyż pozwala na natychmiastowe odnalezienie wyszukiwanej frazy wewnątrz dokumentu. Dopasowane fragmenty dokumenty wybierane i zwracane są automatycznie. Jako, że „hit-highlighting” w zbiorze wynikowych dokumentów musi ponownie przeanalizować tekst , dlatego przy zwracanie np 1000 dokumentów jednocześnie można odczuć spadek wydajności wyszukwiania.Trzeba pamietać, że każda z powyższych funkcji dostępna jest jako komponent, który moża zostać zarejstrowany/odrejestrowany od dowolnego „request-handler’a” obsługującego żądania HTTP.
  • Wyszukiwanie geoprzestrzenne. W Apache Solr można indeksować,  wyszukiwać oraz sortować dane przestrzenne i odległości pomiędzy nimi. Dzięki temu możliwe jest wyszukiwanie dokumentów względem wybranego punktu lub na danym obszarze. Funkcjonalność realizowana jest za pomocą dwóch rodzajów operacji:
    – wolniejszej, opartej na indeksowaniu pary: szerokość i długość geograficzna oraz liczeniu odległości pomiędzy poszczególnymi dokumentami na etapie wyszukiwania. Wykorzystywana do odnajdowania konkretnych lokalizacji.
    – oraz szybszej ale i bardziej skomplikowanej, wykorzystującej modele figur geometrycznych (w szczególności modelowanie wielokątne). W tym podejściu dla dokumentu idenksowane są dodatkowo kształy jako serie współrzędnych siatki. Umożliwia efektywne wyszukiwanie dokumentów na zadanych obszarach, np. placówek dyplomatycznych w danym kraju, wojewodztwie itd. Używa drzew prefixowych do reprezentacji modelu ziemi znanych w GeoHash.