Szukając witryny, którą buduję, zdecydowałem się przejść tanią i szybką drogę i użyć silnika wyszukiwania Microsoft SQL Server zamiast czegoś bardziej niezawodnego, takiego jak Lucene.Net.C# Znajdowanie odpowiednich fragmentów dokumentów do wyświetlania wyników wyszukiwania
Jedną z funkcji, które chciałbym mieć, są fragmenty dokumentów dotyczące google-esque. Szybko stwierdziłem, że określenie "istotnych" fragmentów jest trudniejsze, niż sobie uświadomiłem.
Chcę wybrać fragmenty na podstawie gęstości wyszukiwanego hasła w znalezionym tekście. Tak więc, w zasadzie, muszę znaleźć w tekście najbardziej poszukiwany termin gęsty. Gdzie fragment jest dowolną liczbą znaków (powiedzmy 200 - ale to naprawdę nie ma znaczenia).
Moją pierwszą myślą jest użyć .IndexOf() w pętli i zbudować tablicę odległości (odjąć indeks znalezionego terminu od poprzednio znalezionego terminu), a następnie ... co? Dodaj dowolne dwa, dowolne trzy, dowolne cztery, dowolne pięć, kolejne elementy tablicy i użyj tego z najmniejszą sumą (stąd najmniejsza odległość między wyszukiwanymi terminami).
To wydaje się nieporządne.
Czy istnieje ustalony, lepszy lub bardziej oczywisty sposób na zrobienie tego niż to, co wymyśliłem?
Sigh ... kolejne 150 punktów zmarnowane ... –
? Co to znaczy? –
Dla każdego, kto jest zainteresowany tym pytaniem, istnieje znacznie nowsze pytanie o charakterze agnostycznym, które ma wyższą ocenę niż cokolwiek na ten temat: ** [Biorąc pod uwagę dokument, wybierz odpowiedni fragment] (http://stackoverflow.com/questions/2829303) ** – hippietrail