Po wielu miesiącach – udało się! Wyszukiwanie pełnotekstowe w SQL Server 2008 nareszcie działa tak, jak powinno.
O co chodzi? Minęło tak dużo czasu, że warto chociaż pokrótce przypomnieć – tuningując wyszukiwarkę na dobrychprogramach odkryliśmy całkiem ciekawy, niestety dość poważny błąd w wyszukiwaniu pełnotekstowym oferowanym przez SQL Server 2008. Błąd ten objawiał się tym, że często zwracane były niepełne rezultaty wyszukiwania – przy odpowiednich ustawieniach i pomimo poprawnego skonfigurowania polskich bibliotek językowych w większości przypadków baza nie była przeszukiwana pod kątem form fleksyjnych danego słowa. Więcej nie będę już pisał – po szczegóły, także bardziej techniczne i z metodą reprodukcji odsyłam do felietonu Full-Text Search po polsku szuka kiepsko, który opublikowałem tuż po napotkaniu problemu i zgłoszeniu go do pomocy technicznej Microsoftu.
Eskalacja problemu w pomocy technicznej była całkiem interesującym doświadczeniem – spotkaliśmy się chyba ze wszystkimi poziomami wsparcia. Problem zgłosiliśmy w styczniu. Polskę zgłoszenie opuściło już po jednym dniu, by mógł zająć się nim inżynier wsparcia z dalekiego wschodu (kraj nieustalony, ale różnica czasu +8h), a ostatecznie po kilku tygodniach sprawa trafiła do nieco bliższych Niemiec, skąd kolejny inżynier po namierzeniu problemu już bezpośrednio koordynował pracę zespołu produktowego w Redmond. Skala problemu okazała się na tyle duża, że postanowiono nadać jej najwyższy priorytet w nomenklaturze wsparcia technicznego Microsoftu i wypuścić poprawkę w tzw. modelu Critical On-Demand. Poprawka została oficjalnie wydana kilka dni temu pod numerem KB980350, my otrzymaliśmy ją pod koniec czerwca. Oznacza to, że rozwiązanie tego, jak oceniono, krytycznego problemu zajęło około pół roku.
Niewtajemniczeni mogliby pomyśleć, że trwało to tak długo, bo istota błędu znajdowała się nie w SQL Serverze czy innym oprogramowaniu Microsoftu, ale w bibliotekach do obsługi polskiego języka. Te z kolei dostarczane są od lat przez polską firmę TiP i Microsoft nie ma ich kodu, nie może niczego poprawić. Firmie TiP trudno jednak cokolwiek zarzucić i w tym miejscu chciałbym jej inżynierom gorąco podziękować. Sami skontaktowali się z nami kilka dni po publikacji felietonu w TechIT i od razu zainteresowali się tematem. Dzięki naszej bezpośredniej współpracy, zupełnie niezależnej od zgłoszenia w pomocy technicznej Microsoftu, udało się ustalić konkretną przyczynę problemu w bibliotece DLL i usunąć ją w ciągu kilkunastu dni. Już w lutym mieliśmy więc nową, nieoficjalną co prawda i oczywiście nieprzetestowaną bibliotekę, ale wstępne doświadczenia były bardzo pozytywne – wszystko działało tak jak trzeba. Dzięki temu nie musieliśmy czekać z założonymi rękami na Microsoft, który poprawkę – już oficjalną i przetestowaną – dostarczył znacznie później...
Podsumowując, pomoc techniczna Microsoftu działa dość skrupulatnie i, jakby nie patrzeć, skutecznie. Niestety czas nie idzie w parze z jakością – rozwiązanie problemu, który skutkował tak naprawdę bezużyteczną wyszukiwarką zajęło naprawdę masę czasu. Osobiście spodziewałem się kilku tygodni, ale nie kilku miesięcy. Trzeba jednak przyznać, wracając do tej jakości, że kontakty z inżynierami były na etapie badania sprawy bardzo rzeczowe i merytoryczne, a na etapie pracowania nad poprawką – częste i konkretne. Szkoda, że w większości były to komunikaty o kolejnych, przesuwanych terminach wydania poprawki...
Na koniec nasunął mi się jeszcze jeden wniosek z całej tej zabawy – pół roku prac poskutkowało poprawką dla SQL Server 2008. W międzyczasie jednak wyszedł SQL Server 2008 R2, a tam polski FTS też nie działa tak jak trzeba. Być może opracowanie poprawki do tej wersji serwera potrwa kolejne pół roku... Pozytywnym akcentem w tej sprawie jest jednak fakt, że za incydenty spowodowane faktycznym błędem w oprogramowaniu Microsoft nie nalicza opłaty (standardowo ponad tysiąc złotych) oraz nie odejmuje bezpłatnych incydentów z ewentualnie posiadanej puli.