Zalety Solr
- Wieloplatformowy i łatwo dostępny (Java, REST)
- Aktywnie rozwijany (Apache Foundation)
- Replikacja, import CSV, obsługa synonimów, podświetlanie trafień
- Szybki i wydajny serwer
- Używany m.in. przez digg.com, wikipedię, sourceforge, gamespot
Instalacja i uruchomienie Solr
- By solr działał potrzebna jest zainstalowana wirtualna maszyna Javy
- Pobieramy najnowszą wersję Solr
- Rozpakuj archiwum i przjedź do apache-solr-*/example i wykonaj polecenie:
java -jar start.jar
- Jeżeli wszystkie zależności są spełnione i nie wystąpią nieoczekiwane problemy to serwer Solr zbudowany z serwerem Jetty powinien się uruchomić. Panel admin Solr powinien być dostępny pod adresem http://0.0.0.0:8983/solr/admin/.

Indeksowanie i wyszukiwanie
Schemat indeksu
Do tworzenia określonych indeksów Solr używa schematów określających strukturę i sposób obsługi indeksowanych danych. Oto przykład prostego schematu: Określamy pola nadając im nazwy, typ, a także dodatkowe parametry jak indexed określające czy pole ma być indeksowane, stored daje możliwość pobierania wartości danego pola w wynikach wyszukiwania.Edytuj solr/conf/schema.xml i znajdź: Zastąp całość: Znajdź i usuń definicje starego schematu: Zrestartuj serwer Solr.
Dodawanie i aktualizowanie danych
Aby dodać dane należy wysłać POSTem pod /solr/update/ dane w postaci XML: Oczywiście elementów ("doc") może być więcej niż jeden. Aktualizacja następuję w momencie wysłania dokumentu o istniejącej już w indeksie wartości unikalnego pola (zazwyczaj "id"). Dodatkowo by wszystkie zmiany "weszły w życie" należy wykonać operację wysyłającWyszukiwanie
By pobrać wyniki wyszukiwania należy wykonać żądanie GET adresu /solr/select z parametrami takimi jak:- q=NAZWA_POLA:SZUKANA_FRAZA - szukanie podanej frazy w danych z podanego pola
- fl=POLE1,POLE2,POLEn - jakie pola mają być zwrócone wraz z wynikami
Kasowanie rekordów z indeksu
Aby usunąć rekord należy wysłać POSTem pod /solr/update/ dane w postaci XML: Gdzie id to pole o unikalnej wartości. Istnieje możliwość też kasowania dla różnych warunków, a nie pojedynczych rekordów.Obsługa Solr z poziomu PHP
Dostępne jest już binarne rozszerzenie do obsługi Solr zapewniajace lepsze i wydajniejsze API.
Istnieje gotowa biblioteka obsługująca serwer Solr - ze strony projektu pobieramy SolrPhpClient.zip i rozpakowujemy go do pustego katalogu "Apache" tak by otrzymać ścieżkę Apache/Solr/Service.php. Biblioteka wymaga PHP5 (najlepiej 5.2.0, koniecznie z funkcją json_decode). Oto przegląd jej podstawowych możliwości.
Można też napisać własną mniejszą bibliotekę wysyłającą żądania POST i GET do serwera Solr. W przypadku dodawania/modyfikowania danych należy pamiętać że dane (XML) wysłane muszą być jako treść (body), a nie jako dane POST.
W sieci
Enterprise search with PHP and Apache SolrSearch smarter with Apache Solr, Part 1: Essential features and the Solr schema
Search smarter with Apache Solr, Part 2: Solr for the enterprise
Prezentacje na slideshare
