Solr w wersji 3.1 i późniejszych otrzymał jakiś czas temu bardzo ciekawą funkcjonalność – sortowanie na podstawie wartości pomocą funkcji. Co nam to daje ? W zasadzie kilka ciekawych możliwości, o których poniżej.
Czekając na 4.0: Solr-2272, czyli Solr i funkcjonlaność Join
Index – usuwać, czy nadpisywać ?
Co jakiś czas, w pracy z Solr pojawia się problem – aktualizacja struktury indeksów Solr. Różne są powody tych zmian – nowe wymagania funkcjonalne, optymalizacje, czy cokolwiek innego – nie jest to ważne. Istotne jest pytanie, które się wtedy pojawia – usuwać indeks, czy po prostu zmienić strukturę i przeprowadzić pełną indeksację ? Wbrew pozorom odpowiedź na to pytanie zależy od zmian, jakich dokonaliśmy w strukturze indeksu.
Aplikacja „sprzedaż samochodów” – WordDelimiterFilter i PatternReplaceFilter, czyli na ratunek jakości wyników (cz. 2)
W pierwszej części naszego cyklu stworzyliśmy pewną standardową strukturę indeksu, odpowiednio konfigurując plik schema.xml. Przy takiej konfiguracji, na pierwsze skargi klientów, dotyczących działania silnika wyszukiwawczego nie trzeba było długo czekać. Dlaczego wpisując w kryteria wyszukiwania frazę „audi a” nie otrzymuję ofert związanych z autami „Audi A6” lub „Audi A8” ? Wpisałem „Honda crv” – 0 wyników. „Suzuki maruti” – też nic. Czy takich ofert nie ma w bazie z ogłoszeniami ? Otóż są, ale konfiguracja typu pola, po którym wyszukujemy (pole „content” – typ „text”) uniemożliwia w obecnym stanie znalezienie tych ogłoszeń przy zastosowaniu powyższych zapytań. Na pomoc rusza nam chyba najbardziej popularny filtr – WordDelimiterFilter, oraz PatternReplaceFilter, których odpowiednia konfiguracja pozwoli sprostać naszym potrzebom.
Kilka słów o optymalizacji – filter cache
Dzisiejszy wpis poświęcony został jednemu z typów cache w Solr – filter cache. Postaram się przedstawić do czego służy, jak go skonfigurować i jak go optymalnie wykorzystywać. Zapraszam do lektury.
Aplikacja „sprzedaż samochodów” – projektowanie schema.xml dla naszych potrzeb (cz. 1)
Podstawowym plikiem konfiguracyjnym solr, który jest niejako łącznikiem pomiędzy tym czego potrzebujemy, a tym co rozumie solr, jest plik schema.xml. Dobre zaprojektowanie schema.xml jest głównym czynnikiem warunkującym poprawne funkcjonowanie wyszukiwarki, która będzie w stanie zrealizować wszystkie wymagania, jakie przed nią stawiamy. Zacznijmy zatem kolejny cykl artykułów, poświęconych projektowaniu pliku schema.xml jak i również wszystkich składników wchodzących w skład zdefiniowanych przez nas typów pól.
CheckIndex, czyli na ratunek indeksowi
Korzystając z Lucene i Solr jesteśmy przyzwyczajeni do bardzo dużej niezawodności wymienionych rozwiązań. Może jednak nadejść ten dzień, kiedy Solr krzyknie do nas, iż nasz indeks przestał być poprawny i musimy coś z tym zrobić. Czy jedynym wyjściem jest odtwarzanie z kopii zapasowej, bądź ponowna pełna indeksacja ? Nie tylko – jest jeszcze nadzieja w postaci narzędzia CheckIndex.
Kilka słow o optymalizacji – query result window size
Niniejszym chciałbym rozpocząć mały cykl artykułów opisujący elementy optymalizacji instancji Solr. Na pierwszy rzut pójdzie parametr określający tzw. wielkość okna danych, czyli inaczej query result window. Miejmy nadzieję, że tym artykułem będę w stanie wyjaśnić jak korzystać z tego parametru i jak modyfikować i dostosowywać go do swoich potrzeb.
Data Import Handler – usuwanie danych z indeksu
Usuwanie danych z indeksu przy wykorzystaniu indeksowania przyrostowego w DIH jest na wiki SOLR potraktowane szczątkowo, jako coś, co działa analogicznie do aktualizacji rekordów. Podobnie we wcześniejszym artykule użyłem tego skrótu, tym bardziej, że podany przeze mnie przykład z indeksowaniem zasobów wikipedii nie potrzebował usuwania danych.
Data Import Handler – sharding
Nasza czytelniczka (pozdrawiamy!) zgłosiła się do nas z problemem dotyczącym współpracy DIH z shardingiem. Wiki projektu SOLR pokazuje moim zdaniem rozwiązanie tej kwestii, ale czyni to trochę na około i przy okazji.