Full-text search z timestampami

0

Załóżmy, że mam bazę napisów do filmów, gdzie wiem kiedy zaczyna się każde słowo (lub zdanie). W jaki sposób/czego użyć, żeby sensownie znajdować w których filmach (to akurat proste) i w którym timestampie zostało coś powiedzanie?
Nie mam za bardzo pomysłu jak najlepiej połączyć cały tekst z timestampami

2

A gdzie masz problem ?
Jak już znalazłeś plik to chyba też potrafisz odszukać linijkę gdzie jest poszukiwany fragment ?

Jak bym chciał to ogarnąc to uzyl bym np. https://www.sqlitetutorial.net/sqlite-full-text-search/

0
Adamek Adam napisał(a):

A gdzie masz problem ?
Jak już znalazłeś plik to chyba też potrafisz odszukać linijkę gdzie jest poszukiwany fragment ?

W sumie tak choć jestem ciekawy jak to ugryźć najlepiej. Jeśli mam np. taki input

Timestamp Zdanie
025 I
026 powiedział
027 to
028 zdanie
029 ala
030 ma
031 kota

To dla query : powiedziała to zdanie ala chciałbym dostać 0:30:26. Czyli:

  • chcę mieć stemming i inne fajne bajery FTS (nie wiem, czy SQLITE ma takie coś)
  • wyszukanie powiedział na podstawie powiedziała będzie wymagało ode mnie użycie tej samej logiki co silnik FTS tylko dla osobnej struktury danych

Zastanawiam się, czy da się to zrobić jakoś prościej czyli podsumowując: do tekstu chcę dodać jakieś atrybuty. Celem jest jak najmniejsze narobienie się.
Moja znajomość FTS jest bardzo szczątkowa więc może umyka mi coś oczywistego

0

jak krotka tabeli będzie zawierała id+fk_film+tekst+tekst2+timestamp to myślę ze to ogarnie problem

tekst to kolumna z tekstem w wersji podstawowej (mianownik liczba pojedyncza, pierwsza osoba itp.... ) prosta funkcja

zapytanie wykonujesz tez tekstem który konwertujesz na wersje podstawowa

SELECT *
FROM zalozmy_ze_to_sa_teksty_do_filmow
WHERE tekst MATCH 'powiedział OR zdanie OR to OR ala';

a potem wystawiasz już tekst z kolumny tekst2 gdzie jest oryginał

1 użytkowników online, w tym zalogowanych: 0, gości: 1