Full-Text Search – zadawanie zapytań

W poprzednim artykule została opisana instalacja i konfiguracja wyszukiwania pełnotekstowego dla języka polskiego. Do całości rozwiązania brakowało jednak sposobu zadawania zapytań na indeks FTS, co opisałem w tym artykule.

Zadawać zapytania można tylko na kolumnach o typie tekstowym (char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary). Można to zrealizować na dwa sposoby. Pierwszy z nich wykorzystuje predykaty CONTAINS oraz FREETEXT. Druga metoda wykorzystuje funkcje CONTAINSTABLE oraz FREETEXTTABLE.
Continue reading

Full-Text Search – instalacja i konfiguracja

Wyszukiwanie pełnotekstowe, to mechanizm wydajnego przeszukiwania kolumn o charakterze tekstowym. W tym celu zakładany jest specjalny indeks na tabeli, która ma zostać przeszukana. Zapytania wykonywane na takim indeksie pozwalają dokonać językowego przeszukiwania opartego na regułach określonego języka. Zwrócone rezultaty, to obiekty zawierające przynajmniej jedno dopasowanie (tzw. hit). Poniżej został opsiany proces instalacji oraz konfiguracji polskich narzędzi do Full-Text Search na przykładzie Microsoft SQL Server.
Continue reading

Web user control (ascx)

Kontrolka użytkownika (web user control) jest komponentem, który działa bardzo podobnie do zwykłej strony ASP.NET. Elementy, metody oraz akcje definiuje się zupełnie identycznie. Różnica jest taka, że kontrolki ascx umieszcza się na stronach aspx. Jest to świetny sposób na zgromadzenie w oddzielnym pliku współpracujących ze sobą kontrolek, a co za tym idzie odseparowanie ich zdarzeń od pozostałej logiki. Artykuł ten opisuje, jak w łatwy i szybki sposób zbudować i następnie korzystać z dwóch kontrolek użytkownika: UpDownControl oraz DatePickerControl. Do ich stworzenia wykorzystałem jQuery UI oraz AjaxControlToolkit. Pominąłem opis konfiguracji i deklaracji skryptów z tychże bibliotek.
Continue reading

Profile w ASP.NET

Dawno temu opisałem w jaki sposób zintegrować Membershipa z własną bazą danych (tutaj). W tym artykule chciałbym skupić się na innym, bardzo ciekawym mechanizmie, a mianowicie na profilach.
Profile służą do przechowywania i przywracania ustawień użytkownika odwiedzającego aplikację. Ustawienia, które chcemy przechowywać, konfigurujemy w pliku konfiguracyjnym aplikacji (web.config) w sekcji profile. Kiedy aplikacja startuje oraz mechanizm profili jest włączony, ASP.NET buduje klasę ProfileCommon, która to dziedziczy po ProfileBase. Klasa ta zawiera wszystkie niezbędne mechanizmy do operacji na profilach użytkowników. Przejdźmy do praktyki.
Continue reading

Cache dla danych z bazy

W każdej aplikacji, wykorzystującej bazę danych do przechowywania informacji, są elementy/tabele/struktury, których zawartość zmienia się niezmiernie rzadko. W związku z tym, zasadne wydaje się zaimplementowanie mechanizmu przechowywania tychże informacji w “bardziej stałym” obiekcie. Ograniczyłoby to komunikację pomiędzy bazą danych i aplikacją, a tym samym zwiększyło wydajność aplikacji. Mechanizm taki można zaimplementować na wiele sposobów. Jednym z nich może być klasa typu Manager do przechowywania i zarządzania informacjami. Ja natomiast pokusiłem się o implementację typu cache, którą prezentuję poniżej.
Continue reading