Как определить расположение фрагментов заголовков в полнотекстовом поиске PostgreSQL - PullRequest
0 голосов
/ 04 августа 2020

У меня есть несколько больших документов, которые я загрузил в таблицу Postgres и создал обычный tsvector. Мне нужно запросить в этих документах различные условия поиска, которые могут появиться в нескольких местах в документе, и я использую метод ts_headline () для извлечения текстовых фрагментов.

Я хотел бы определить местоположение каждый возвращенный фрагмент по номеру страницы. Перед загрузкой документов я добавил в конец каждой страницы специальную строку и номер страницы (например, «myspecialmark1», «myspecialmark2» и т.д. c.). Из tsvector я могу восстановить (количество слов) расположение этих меток и, следовательно, каждой страницы. Это нужно будет сделать только один раз для каждого документа. Таким образом, если бы я знал (количество слов) расположение каждого фрагмента, я мог бы выяснить номер страницы для фрагмента, что очень обрадовало бы пользователей.

К сожалению, я не вижу возможности для ts_headline для возврата местоположения. Одним из очень дорогостоящих обходных путей был бы отдельный запрос регулярного выражения для каждого фрагмента, включая фрагмент и все, вплоть до конечной отметки страницы, из которой я мог бы извлечь номер страницы. Есть ли способ лучше?

Заранее спасибо.

...