Ilość ogłoszeń w naszej bazie rozrosła się do tego stopnia, że klienci zaproponowali dodanie nowej opcji przy filtrowaniu wyników wyszukiwania oraz nowej opcji sortowania. Mianowicie musimy dodać funkcjonalność, która pozwoli nam operować na danych związanych z lokalizacją auta w danym ogłoszeniu.
Solr
Data Import Handler & XML – zagnieżdzone encje
Data Import Handler jest bardzo miłym i rozbudowanym narzędziem. Poniżej opis problemu (i rozwiązania) w którym spotkałem się ostatnio.
Sortowanie po wartościach funkcji w Solr (SOLR-1297)
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.
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.