Fulltext search a metadane dla każdego wyrazu

Cześć,

myślę nad rozwiązaniem następującego problemu: mam tekst, który może być wydzielony z PDF-a lub wyciągnięty z obrazka przy użyciu OCR-a. Każdy wyraz tego tekstu ma dodatkowo atrybuty związane z jego położeniem w dokumencie (strona i współrzędne na stronie). Pytanie, co mogę wykorzystać do wyszukiwania pełnotekstowego w takim przypadku. Use case jest taki, że użytkownik wpisując frazę powinien dostać współrzędne, gdzie szukany tekst się znajduje w dokumencie. Na chwilę obecną po prostu przechowuję każdy wyraz jako osobny rekord w tabeli w Postgresie, a w pozostałych kolumnach info o współrzędnych. Minus jest taki, że nie mogę wyszukiwać po wzorcu złożonym z więcej niż jednego wyrazu, no i tak zaprojektowana tabela dość szybko puchnie wraz ze wzrostem liczby dodanych i przeparsowanych dokumentów. Próbowałem użyć Solr-a (wraz z Sunspotem), ale w sposób analogiczny, czyli każdy wyraz jako osobne pole. Przypuszczam, że takie podejście też jest dalekie od optymalnego. Spotkał się ktoś w podobnym problemem?

Moze sprobuj - http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-termvectors.html

Jeśli dobrze rozumiem, to term information zwracane przez elasticsearch jest przez niego generowane. Ja potrzebowałbym dostarczać mu te informacje, bo nie chodzi mi o pozycję frazy w tekście (offset), ale o pozycję we współrzędnych na stronie dokumentu, który zawiera tą frazę (czyli coś, co wyciągam wcześniej i chciałbym dopiero zaindeksować i przechowywać jakoś).

@tiwi - Tobie chodzi o wspolrzedne np pixelowe ?

Zgadza się, te współrzędne są znane dla każdego wyrazu w tekście.

Jedyne co mi sie nasuwa to jakas integracja z PostGIS’em ale to bardzo luzna idea :smile: