Kilkanaście miesięcy temu podczas jednego z projektów starałem się optymalnie skonstruować zapytania z facetingiem. Problem polegał na tym, że faceting miał był nieograniczany, a samo zapytanie nakładało konieczność ograniczenia filtrem (fq). Niestety wtedy nie było to możliwe bez dodatkowej implementacji i zmian w mechanizmie facetingu. Teraz już jest, właśnie dzięki tzw. LocalParams.
Solr
Integracja Solr z Tika (cz. 1 – podstawy)
Indeksowanie tzw, „rich documents”, czyli plików w formacie pdf, doc, rtf i tak dalej (lub też plików binarnych) zawsze wymagało pewnej pracy po stronie dewelopera w celu wyciągnięcia interesujących go treści, a następnie przygotowanie ich w formacie zrozumiałym dla wyszukiwarki, w tym wypadku dla Solr. Aby zminimalizować tą pracę postanowiłem przyjrzeć się Apache Tika i integracji tej biblioteki z Solr.
Aplikacja „sprzedaż samochodów” – Spatial Search, czyli wprowadzenie danych lokalizacyjnych (cz. 3)
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.
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.