Recoll WebUI помогает находить слова и фразы сразу в коллекции PDF и других документов: запрос вводится в общей строке, область поиска ограничивается папкой и датами, результаты сортируются по релевантности или метаданным, а найденный файл можно открыть, загрузить либо просмотреть как извлечённый текст.
Рабочий экран построен вокруг поля Query и компактной панели фильтров. Рядом находятся выбор каталога Folder, границы периода Dates, списки Sort by и Order, а под формой появляется выдача со сниппетами, подсветкой совпадений, путём к файлу, автором, датой и действиями Preview, Download и Open.
Практический порядок работы состоит из трёх этапов: сначала Recoll извлекает текст и метаданные и обновляет индекс, затем пользователь формулирует запрос и сужает выборку, после чего проверяет контекст совпадения и переходит к исходному документу. Веб-интерфейс не заменяет индексатор, поэтому качество и полнота поиска напрямую зависят от его конфигурации.
Скачать Recoll WebUI
- Редактирование PDF
- Русский интерфейс
- Просто новичкам
- Не редактирует PDF
- Нужен индекс Recoll
- Нет встроенной авторизации
Рабочий экран и логика поиска
В верхней части страницы запрос отделён от фильтров пунктирными вертикальными линиями. Поле Query принимает как обычные слова, так и выражения языка запросов Recoll. Кнопка Search запускает поиск, Reset очищает введённые условия, а Settings открывает пользовательские параметры. Такая компоновка удобна, когда человек начинает с широкого запроса, оценивает количество совпадений и затем добавляет ограничения, не переходя между несколькими окнами.
Блок Folder строится по каталогам, которые присутствуют в индексе. Выбор папки не просматривает файловую систему в реальном времени: он добавляет к запросу ограничение по пути. Поэтому новый каталог появляется в списке только после того, как индексатор увидел его содержимое. Для большой иерархии глубина дерева регулируется отдельно; слишком большое значение заставляет страницу долго собирать список каталогов и иногда приводит к ошибке инициализации.
Поля Dates задают нижнюю и верхнюю границы даты документа в форме, понятной Recoll. Можно заполнить только начало, только конец или обе границы. Фильтр полезен для договоров, отчётов и корреспонденции, где одинаковые термины встречаются из года в год. Следует учитывать, что выдача опирается на дату, записанную в индексе: для одного формата это время изменения файла, для другого — метаданные документа или сообщения.
Списки Sort by и Order меняют порядок уже найденных записей. Доступны релевантность, дата, путь, имя файла, размер и автор; направление задаётся отдельно. Релевантность подходит для исследовательского поиска, дата — для свежих документов, путь и имя — для проверки структуры архива, автор — для корреспонденции и материалов подразделений. При одинаковых значениях порядок соседних результатов может отличаться после перестроения индекса.

Как читать строку результата
Над выдачей отображаются число совпадений, нормализованное выражение запроса и время выполнения. Эти сведения помогают отличить медленный поиск от медленной загрузки страницы. Если запрос выполняется быстро, но браузер долго показывает список, причиной обычно становятся слишком длинные сниппеты, большое число результатов на странице или тяжёлое дерево Folder. Если время самого запроса велико, проверяют размер индекса, способ сортировки и сложность выражения.
Каждая запись начинается с номера позиции и заголовка. Когда метаданные title отсутствуют, вместо них обычно используется имя файла. Ниже виден путь или преобразованный адрес, а рядом расположены Preview, Download и Open. В правой части строки выводится дата, в дополнительных данных может присутствовать автор. Для вложенного объекта показывается внутренний путь: он объясняет, что совпадение найдено не в контейнере целиком, а, например, в письме или документе внутри архива.
Сниппет формируется из текста, сохранённого в индексе, а совпавшие слова выделяются. Это не произвольный фрагмент начала файла: Recoll выбирает контекст вокруг терминов запроса. Если фраза встречается несколько раз, абстракт старается показать информативные участки в пределах заданного числа слов и символов. По сниппету удобно отбрасывать документы, где совпадение относится к оглавлению, шаблону, подписи или цитате из другого материала.
Путь важен не меньше заголовка. В корпоративном архиве одинаковые имена вроде scan.pdf или report.docx повторяются сотни раз, тогда как каталог указывает проект, год или подразделение. При работе через сервер физический путь может быть бесполезен для клиентского компьютера; тогда администратор задаёт соответствие серверного расположения адресу или точке монтирования, доступной пользователю.

Подготовка индекса для PDF и других документов
Recoll WebUI выполняет запросы к уже созданной базе. Добавление папки, исключение временных файлов, выбор кодировок, подключение внешних фильтров и расписание обновления настраиваются средствами Recoll. Перед первой проверкой через браузер полезно выполнить контрольный поиск в основном интерфейсе или командном клиенте: если документ отсутствует там, изменение кнопок и фильтров веб-страницы не исправит ситуацию.
При первичном индексировании каждое подходящее расширение передаётся обработчику. Простые текстовые файлы читаются напрямую, а PDF, офисные документы, почта и архивы часто требуют внешних программ извлечения. Индекс сохраняет слова, позиции, поля и сведения о расположении, а не копию исходного оформления. Благодаря этому поиск по тысячам документов занимает доли секунды, но результат зависит от того, удалось ли обработчику получить корректный текст.
Для регулярно меняющегося хранилища нужен инкрементальный запуск индексатора. Он добавляет новые документы, переобрабатывает изменённые и удаляет записи о пропавших файлах согласно настройкам. Если сотрудники ожидают почти мгновенное появление договора, ежедневного задания недостаточно; интервал выбирают по интенсивности поступления данных и нагрузке. Полное перестроение выполняют после существенной смены правил, а не при каждом небольшом сбое.
Внешние индексы подключаются через отдельный список конфигурационных каталогов. Это позволяет объединить личную базу с архивом отдела или искать одновременно по нескольким коллекциям без физического слияния файлов. При таком сценарии пути, права и набор обработчиков должны быть согласованы: одинаковый запрос может возвращать разные метаданные, если базы строились с неодинаковыми правилами.
Для проверки полноты берут небольшой набор эталонных файлов: обычный PDF с текстовым слоем, скан, документ с кириллицей, письмо с вложением, архив и офисный файл. В каждом заранее выбирают уникальную фразу и затем ищут её через WebUI. Такой тест быстрее выявляет отсутствующий фильтр, проблему кодировки или неработающий OCR, чем случайный просмотр большой выдачи.

Запросы из слов и точных фраз
Самый простой запрос состоит из одного или нескольких слов. Recoll анализирует их согласно языковым настройкам индекса и возвращает документы, где встречаются соответствующие термины. Включённое приведение к основам слов расширяет поиск на грамматические формы. Для русского корпуса это помогает находить склонения, но не заменяет продуманную формулировку: аббревиатуры, номера изделий и фамилии лучше проверять отдельными запросами.
Кавычки применяют, когда важен порядок слов. Запрос из точной фразы уменьшает шум в нормативных документах и договорах, где каждое слово по отдельности встречается часто. Слишком длинная фраза, напротив, легко теряет документ из-за переноса строки, дефиса, распознанной ошибки или изменённого окончания. Практичнее начинать с двух-трёх устойчивых слов, а затем сверять контекст в сниппете.
Логические условия соединяют альтернативы и исключения. AND требует присутствия обеих частей, OR допускает любую из них, NOT отбрасывает нежелательный термин. Скобки задают порядок вычисления в сложном выражении. Для запроса по тендерам можно объединить варианты названия процедуры через OR, добавить обязательный номер проекта через AND и исключить слово draft через NOT. После каждого усложнения следует смотреть, как изменилось число совпадений.
Минус перед термином и другие краткие формы удобны, но при передаче запроса между сотрудниками лучше использовать очевидную запись. Ошибка в логике часто незаметна: страница выдаёт результаты, однако часть коллекции исключается. Для повторяемых проверок сохраняют текст выражения вместе с описанием цели и контрольным документом, который обязан находиться.
Стоп-слова и знаки препинания могут обрабатываться не так, как ожидает пользователь. Поиск служебной частицы отдельно часто бессмысленен, а точка в номере может стать разделителем. Серийные номера, адреса электронной почты и коды проверяют несколькими вариантами, ориентируясь на правила токенизации конкретного индекса. Если термин не подсвечен в предпросмотре, сравнивают исходный текст с извлечённым.
Поиск по полям и метаданным
Полевая запись отделяет имя свойства двоеточием. Она нужна, когда текст запроса встречается в содержимом и метаданных, но интересует только один источник. Ограничение по filename помогает найти документ по части имени, title — по заголовку, author — по автору, а тип и путь позволяют отделить PDF от писем или выбрать проектный каталог. Доступность конкретного поля зависит от того, какие метаданные извлёк обработчик.
Имя файла особенно полезно при неполном или испорченном текстовом слое. Например, скан может не содержать распознанного текста, но номер договора присутствует в названии. Обратная ситуация встречается у автоматически сформированных файлов с техническими именами: тогда title или содержимое дают лучшие результаты. Сравнение нескольких полей помогает понять, откуда пришло совпадение.
Автор в офисном документе и отправитель письма не всегда представляют одного и того же человека. Значение может быть пустым, устаревшим или заполненным шаблоном. Поэтому author применяют как уточнение, а не как единственный критерий юридически значимого поиска. Для строгой выборки по делопроизводству лучше сочетать автора, путь, период и характерную фразу.
Ограничение по MIME-типу точнее расширения, когда файлы были переименованы или вложены в контейнер. Но и тип зависит от распознавания. Если PDF отображается как общий двоичный объект, проверяют внешние утилиты и конфигурацию типов Recoll. После исправления старую запись нужно переиндексировать; перезагрузка страницы WebUI не изменит сохранённые поля.
Поле dir и визуальный список Folder решают близкую задачу. Список удобен для разового выбора, а текстовое условие проще копировать и комбинировать. Важно не задавать взаимоисключающие ограничения одновременно: выбранный каталог и вручную введённый другой путь способны обнулить выдачу, хотя каждый фильтр по отдельности работает.
Ограничение по папке и дате
Фильтр Folder показывает дерево только до заданной глубины. Значение два означает, что на старте строятся верхние уровни, а не вся многотысячная иерархия. Это защищает страницу от чрезмерного объёма, но глубокий проект может не появиться как отдельный пункт. В таком случае используют более общий каталог либо вводят условие пути в запросе.
При выборе каталога следует учитывать символические ссылки, точки монтирования и разные представления одного пути. Индекс хранит адрес, полученный на стороне индексатора. Если хранилище было перемонтировано, старые записи продолжают ссылаться на прежнее расположение до обновления. Массовая смена пути требует проверки не только поиска, но и действий Open и Download.
Границы Dates удобны для календарного отбора, однако они не заменяют анализ версии документа. Более новый файл может содержать старый текст, а письмо с поздним временем — вложение, созданное раньше. Для договоров и нормативных актов дату из выдачи сопоставляют с реквизитами внутри файла. WebUI показывает индексированное значение, а не гарантированную дату подписания.
Неполная дата расширяет период. Это удобно для запроса по месяцу или году, но результат стоит проверять на граничных значениях. Сервер и файлы могут использовать разные часовые пояса, поэтому документы около полуночи иногда попадают в соседний день. Формат времени отображения меняется настройкой, но само изменение представления не исправляет ошибочную исходную метку.
Практический способ искать свежие материалы — сначала задать период и сортировку Date descending, затем открыть несколько первых совпадений и проверить путь. Если нужного файла нет, убирают папку, расширяют период и лишь после этого меняют текст запроса. Такая последовательность показывает, какое именно условие оказалось слишком строгим.

Сортировка выдачи
Relevancy ранжирует документы по статистике терминов и другим сигналам Xapian. Первый результат не обязательно самый новый или юридически значимый; он лишь лучше соответствует текстовому выражению. Для исследовательской задачи это хороший старт, а для контроля поступлений сортировку переключают на дату. Сравнение первых страниц в двух режимах часто выявляет важный документ, который не попал в верх релевантности.
Date полезна только при достаточно качественных временных метаданных. Если весь импортированный архив получил дату копирования, порядок будет вводить в заблуждение. Path группирует материалы по расположению и помогает просмотреть один проект последовательно. Filename обнаруживает серии файлов с нумерацией, но лексикографический порядок может поставить 10 перед 2, если в именах нет ведущих нулей.
Size применяют для поиска необычно крупных вложений, дубликатов сканов или пустых файлов. Небольшой PDF не обязательно пуст: текстовый документ без изображений занимает мало места. Author удобен для авторских коллекций, однако пустые и неодинаково написанные значения собираются в разные группы. Перед выводом о полноте списка необходимо посмотреть несколько записей без автора.
Ascending и Descending имеют очевидный смысл для даты и размера, но для релевантности обычно выбирают убывание. Если после смены порядка страница выглядит прежней, проверяют выбранное поле, отправку формы и наличие различающихся значений. Браузер может сохранить старое состояние формы, тогда Reset и повторный запрос исключают случайное сочетание фильтров.

Пагинация и объём выдачи
По умолчанию на странице показывается ограниченное число записей. Панель навигации содержит переход к первой и последней странице, предыдущей и следующей, а также номера соседних страниц. Позиция результата продолжается сквозь выдачу, поэтому номер 51 означает начало третьей страницы при двадцати пяти элементах. Это удобно для фиксации места, но номер меняется после обновления индекса или сортировки.
Параметр Results per page регулирует плотность. Большое значение сокращает количество переходов, но увеличивает HTML, объём сниппетов и время отрисовки. На слабом клиенте разумнее оставить 25 или меньше. Администратор может задать верхний предел, чтобы один пользователь не запросил тысячи результатов одной страницей.
Maximum results ограничивает всю выборку. Ноль означает отсутствие пользовательского лимита, однако практический предел всё равно задаётся ресурсами индекса и сервера. Для интерактивной работы полезнее уточнить запрос, чем пролистывать сотни страниц. Если нужен полный перечень для обработки, используют CSV или JSON и заранее выбирают нужные поля.
После перехода на другую страницу запрос, сортировка и фильтры должны сохраняться. Если вместо продолжения появляется начальная форма, причиной может быть потеря параметров из-за обратного прокси, некорректного базового пути или устаревшей ссылки. Проверяют, что веб-сервер передаёт строку запроса и что приложение опубликовано под согласованным префиксом.

Предпросмотр извлечённого текста
Preview показывает представление, полученное через механизм извлечения Recoll. Для PDF это обычно текст с подсвеченными словами, а не точная копия страниц. Колонки, таблицы, подписи, печати, изображения и положение элементов могут быть потеряны. Предпросмотр предназначен для быстрой проверки смысла совпадения; окончательное чтение и проверку реквизитов выполняют в исходном файле.
Подсветка зависит от запроса и доступного текста. Если слово видно в PDF, но отсутствует в Preview, возможны три причины: страница является изображением, шрифт имеет нестандартную карту символов или обработчик извлёк текст с ошибкой. В первом случае требуется OCR до индексирования, во втором помогает другой PDF-фильтр или пересохранение, в третьем сравнивают вывод утилиты извлечения вне WebUI.
Большой документ может открываться дольше обычного, потому что сервер получает и преобразует содержимое для предпросмотра. Ограничение длины сниппета не ограничивает полный Preview. Для многосотстраничных отчётов практичнее сначала убедиться по сниппету, что найден нужный раздел, а затем открыть оригинал в PDF-просмотрщике с поиском по фразе.
Вложенные документы извлекаются временно. Когда результат относится к файлу внутри письма или архива, Preview должен получить именно внутренний объект. Ошибка здесь часто связана с отсутствующим обработчиком контейнера, повреждённым архивом или изменившимся индексом. Повторный запрос после обновления базы важен, потому что порядковый идентификатор результата может уже указывать на другой объект.
Предпросмотр снижает риск открыть не тот файл, но не является безопасной песочницей. Извлечённый текст может содержать конфиденциальные данные, а само действие доступно любому, кто имеет доступ к странице. Ограничение сети и аутентификация на уровне внешнего веб-сервера необходимы до публикации индекса для группы.

Открытие и загрузка исходного файла
Download передаёт документ через сервер. Такой вариант работает, даже если клиент не видит серверную файловую систему напрямую, при условии что процесс WebUI имеет право прочитать файл. Для вложения приложение сначала извлекает объект из контейнера. Имя загрузки следует проверять, поскольку одинаковые названия из разных папок легко перепутать.
Open строит ссылку на исходное расположение или на адрес, полученный из таблицы Locations. Если серверный путь недоступен клиенту, ссылка не сработает, хотя Download остаётся исправным. Сопоставление задаёт замену начала пути: например, серверный каталог связывают с сетевой точкой, которую видят рабочие станции. Правило тестируют на нескольких подпапках, чтобы исключить неверное экранирование и обрезание разделителей.
Современные браузеры ограничивают переход с веб-страницы к адресам локальных файлов. Поэтому корректная ссылка file-типа может игнорироваться по политике безопасности. Расширять разрешения браузера на всех компьютерах не всегда разумно. Надёжнее выдавать документ через Download, публиковать хранилище контролируемым протоколом или использовать обратное сопоставление на разрешённый сетевой ресурс.
Поведение щелчка по заголовку задаётся Default action. Можно выбрать Download, Open или Preview. Для удалённых пользователей безопаснее Preview или Download: Open часто зависит от локальной конфигурации. Для внутренней сети с единым монтированием каталогов удобен Open. После смены параметра настройка сохраняется в cookie, поэтому два браузера одного пользователя могут вести себя по-разному.
Если загрузка возвращает пустой файл или ошибку, сначала сравнивают путь в выдаче с фактическим объектом. Затем проверяют права пользователя процесса, доступность монтирования и обработку вложения. Поиск может работать по старой записи после удаления исходника; в этом случае требуется обновить индекс. Для архивного объекта дополнительно проверяют программу распаковки и целостность контейнера.
PDF с текстом, сканы и OCR
Обычный PDF с текстовым слоем индексируется по символам, которые извлекает настроенный обработчик. Качество зависит от внутренней структуры файла. Визуально правильный документ может отдавать слова в неверном порядке, смешивать колонки или заменять буквы. Для поиска это проявляется пропущенными фразами и странными сниппетами, хотя отдельные термины всё ещё находятся.
Скан без текстового слоя не становится поисковым только потому, что открывается в браузере. Recoll WebUI не запускает распознавание при вводе запроса. OCR должен отработать в цепочке подготовки или индексирования, а полученный текст — попасть в индекс. После изменения OCR-настроек старые сканы переиндексируют; простой инкрементальный проход может не тронуть неизменившийся файл без принудительного обновления.
Для контроля OCR выбирают страницы с мелким шрифтом, таблицами, штампами и кириллицей. Ищут редкие слова из разных частей документа, затем смотрят Preview. Если совпадение находится только в имени файла, содержимое ещё не распознано. Если слова находятся с систематическими ошибками, корректируют язык и качество изображения, а не расширяют запрос бесконечным набором опечаток.
Защищённый PDF может разрешать просмотр, но запрещать извлечение, либо требовать пароль. Индексатор не должен обходить эти ограничения. Документ предварительно обрабатывают законным способом с учётом политики доступа или исключают из коллекции. В выдаче такой файл может присутствовать только по имени и метаданным, если обработчик не получил содержимое.
Формы, комментарии, закладки и вложенные файлы PDF индексируются неодинаково. Нельзя предполагать, что все видимые элементы попадут в текст. Проверяемое условие — фактический Preview и контрольный запрос. Если задача состоит в изменении страниц, заполнении формы или нанесении подписи, WebUI не подходит: он находит документ, после чего работу продолжают в редакторе PDF.
Большие сканы увеличивают время OCR и размер хранилища, но размер поискового индекса определяется прежде всего текстом и позициями. Полезно разделить процессы: тяжёлое распознавание выполнять по расписанию, а лёгкое обновление индекса — чаще. Тогда веб-поиск остаётся отзывчивым и не конкурирует с массовой обработкой за процессор и диск.
Почта, архивы и вложенные объекты
Recoll умеет индексировать контейнеры и показывать вложенные документы как отдельные результаты. В строке появляется внутренний путь, который отличает письмо от вложения и один файл архива от другого. Это особенно полезно для переписки, где имя письма не содержит темы договора, а нужная фраза находится в приложенном PDF.
Preview и Download для вложения требуют повторного извлечения. Если контейнер изменился после индексирования, внутренний порядковый путь может стать недействительным. Обновление индекса синхронизирует структуру. Для долговременных ссылок на отдельный результат WebUI не следует считать стабильным архивным каталогом: позиция документа зависит от запроса и состояния базы.
Архивы с паролем, повреждённые вложения и нестандартные форматы могут индексироваться лишь частично. Внешний файл-контейнер при этом находится по имени, а внутренний текст отсутствует. В журнале индексатора обычно виден обработчик, который завершился ошибкой. Исправление выполняют на стороне подготовки данных; повторное нажатие Search только повторяет запрос к неполному индексу.
Письма содержат несколько дат и участников: время отправки, получения, изменения файла, отправителя, получателей и автора вложения. Выдача показывает те поля, которые были сохранены конфигурацией. Для расследования переписки нельзя полагаться на одну строку результата; открывают исходное сообщение и проверяют заголовки. Авторская сортировка также может группировать письмо и вложение по-разному.
Дубликаты вложений из длинной цепочки переписки создают много похожих результатов. Уточнение по папке, периоду и теме сокращает шум. Если задача требует удаления дубликатов, WebUI лишь помогает обнаружить повторения по названию и контексту; решение о совпадении принимают по хэшу и исходным файлам вне интерфейса.

Настройки сниппетов и поведения выдачи
Settings хранит пользовательские значения в cookie. Это удобно без учётной записи, но настройки привязаны к конкретному профилю браузера и могут исчезнуть после очистки данных. В приватном режиме они не переживают закрытие окна. Администратор задаёт начальные значения в конфигурации Recoll, а пользователь меняет доступные параметры для своего сеанса.
Context words определяет, сколько слов окружает совпадение в абстракте. Небольшое значение делает выдачу компактной, но может скрыть субъект предложения. Слишком большое превращает страницу в длинный текст и замедляет отрисовку. Maximum context characters ограничивает суммарную длину независимо от числа слов; два параметра работают совместно.
Find similar words включает stemming. Для естественного языка это повышает полноту, но для кодов, артикулов и фамилий способно добавить лишние формы. Если точный термин растворяется в широкой выдаче, опцию временно отключают и сравнивают результат. При этом точная фраза и полевые ограничения часто дают более предсказуемый эффект, чем глобальное отключение морфологии.
Time format задаёт отображение даты по шаблону системной библиотеки. Неверный шаблон может показать пустое или неудобное значение, но не меняет дату в индексе. Для международной группы лучше выбрать однозначный порядок год-месяц-день и явно учитывать часовой пояс сервера. Локаль процесса влияет на названия месяцев и дней.
Folder tree depth управляет затратами на построение списка каталогов. В коллекции с миллионами путей даже два уровня могут быть тяжёлыми. Тогда глубину уменьшают до одного или нуля, а точные каталоги задают текстовым условием. После изменения начального значения перезапускают процесс и очищают старую cookie, если пользовательская настройка продолжает перекрывать его.
Default action изменяет щелчок по заголовку, но отдельные ссылки Preview, Download и Open остаются видимыми. Это снижает цену ошибочного выбора: пользователь может открыть нужное действие явно. Для обучения команды полезно договориться об одном стандартном поведении и описать, когда использовать остальные ссылки.

CSV, JSON и OpenSearch
Ссылки CSV и JSON выгружают результаты текущего запроса в машинно-читаемом виде. Набор полей задаётся параметром CSV/JSON fields; типичный список включает имя файла, заголовок, автора, размер, время, MIME-тип и адрес. Экспорт полезен для инвентаризации, выборочной проверки и передачи списка другой системе, но не содержит полного текста документов по умолчанию.
Перед массовой выгрузкой уточняют запрос и проверяют первые результаты. Ошибочное условие создаст аккуратный, но неполный отчёт. Размер экспорта ограничивают Maximum results или более узкими фильтрами. Для большой коллекции лучше разбить выгрузку по периоду или папке, чтобы снизить нагрузку и получить воспроизводимые части.
CSV требует внимания к кодировке, разделителям и переносам строк в метаданных. Табличный редактор может автоматически преобразовать даты, длинные номера и значения, начинающиеся со знака равенства. Файл рассматривают как данные из потенциально недоверенного источника и импортируют с явными типами. JSON сохраняет структуру точнее и удобнее для скриптов.
Параметр, недоступный через пользовательскую страницу, способен полностью скрыть ссылки JSON и CSV. Это полезно, когда массовое извлечение списка нежелательно. Однако скрытие кнопок не заменяет контроль доступа к приложению. Защиту маршрутов экспорта обеспечивает внешний веб-сервер или прокси теми же правилами, что и основную выдачу.
Install OpenSearch добавляет Recoll WebUI как поисковую систему браузера. После установки запрос можно отправлять из адресной строки или поля поиска. Функция удобна для личного рабочего места, но базовый адрес должен быть постоянным и доступным. При публикации под другим префиксом проверяют описание OpenSearch и корректность сформированного запроса.

Совместная работа и безопасность
Сам интерфейс не содержит системы пользователей и ролей. Если страница доступна в сети без дополнительной защиты, посетитель сможет искать, просматривать и в зависимости от настроек загружать документы, которые читает процесс WebUI. Поэтому открывать порт во внешнюю сеть напрямую нельзя. Доступ ограничивают межсетевым экраном, обратным прокси, аутентификацией и шифрованием соединения.
Права файловой системы определяются учётной записью процесса. Запуск от владельца слишком широкой домашней директории раскрывает больше, чем ожидается. Для общего поиска создают отдельного пользователя, дают ему чтение только нужных каталогов и строят индекс в соответствующем конфигурационном каталоге. Проверку проводят под этой же учётной записью, а не от администратора.
При WSGI-развёртывании число потоков выбирают умеренным. Документация позиционирует приложение для умеренной совместной нагрузки, а не как высоконагруженный публичный портал. Запросы к индексу быстры, но Preview и Download читают файлы и могут занимать рабочий поток. Ограничение размера ответа, тайм-ауты и журналирование на прокси защищают от случайного перегруза.
Содержимое сниппетов само по себе конфиденциально. Даже без кнопки Download пользователь видит фрагменты текста, имена, пути и авторов. Нельзя считать ограничение на загрузку достаточной маскировкой. Индекс следует строить только из документов, доступных всей целевой группе, либо публиковать разные экземпляры для разных зон доступа.
Cookie настроек не является механизмом идентификации. Она хранит предпочтения интерфейса и может изменяться клиентом. Значения вроде числа результатов проверяются серверными ограничениями. Сеансы аутентификации, если они добавлены прокси, должны использовать отдельные защищённые cookie и не смешиваться с пользовательскими параметрами WebUI.
Журнал доступа помогает расследовать массовые выгрузки и ошибки, но запрос может содержать чувствительные слова. Полное логирование строк поиска требует правил хранения и ограничения доступа. На уровне приложения полезно фиксировать технические ошибки без длительного сохранения содержимого запросов, если это не нужно для поддержки.
Запуск в Windows
На Windows сначала устанавливают Recoll и проверяют его Python-расширение подходящей разрядности. Затем добавляют Python и сервер Waitress, разворачивают код WebUI и запускают standalone-сценарий. Документация указывает 64-разрядные сборки расширения для поддерживаемых выпусков Python; несовпадение версии интерпретатора и модуля проявляется ошибкой импорта ещё до открытия страницы.
По умолчанию процесс слушает только локальный адрес и порт 8080. Это безопасный режим для первичной проверки. Параметр адреса меняют лишь после настройки брандмауэра и внешней защиты. Параметр конфигурационного каталога указывает, какой индекс Recoll использовать; без него процесс берёт стандартное расположение текущего пользователя.
Переменная RECOLL_CONFDIR решает ту же задачу для окружения, а аргумент командной строки имеет приоритет. RECOLL_EXTRACONFDIRS добавляет другие индексы. На Windows важно, под какой учётной записью запущен процесс: служба и интерактивный пользователь видят разные домашние каталоги, сетевые диски и переменные. Абсолютные пути уменьшают неоднозначность.
Если страница открывается локально, но недоступна с другого компьютера, проверяют адрес привязки, правило брандмауэра и маршрут. Если форма видна, но поиск выдаёт ошибку, проблема уже не в порте: смотрят импорт recoll, конфигурационный каталог и права на индекс. Такое разделение экономит время и не заставляет менять сетевые настройки при сбое Python-модуля.
Для автоматического запуска используют штатный механизм служб или планировщик, задавая рабочий каталог и окружение явно. Запуск из случайной папки может нарушить поиск шаблонов и статических файлов. После обновления Python повторно проверяют совместимость расширения, потому что бинарный модуль привязан к ABI интерпретатора.
Запуск в Linux и через WSGI
В самостоятельном режиме сценарий запускает Waitress, принимает адрес, порт и каталог конфигурации. Этот способ подходит для проверки и небольшой внутренней группы. Процесс запускают из каталога проекта либо устанавливают пакет так, чтобы шаблоны и статические файлы находились корректно. Для постоянной работы создают отдельную службу с автоматическим перезапуском.
Служба должна стартовать после доступности файловых систем, где находятся индекс и документы. Если сетевое хранилище подключается позднее, поиск может открыть индекс, но Download будет возвращать ошибку. Зависимости службы и проверка монтирования устраняют гонку при загрузке. Индексатор и WebUI желательно запускать от совместимых учётных записей.
WSGI под Apache позволяет использовать существующую аутентификацию, TLS, журналы и ограничения доступа. Конфигурация должна передать Python-путь к каталогу приложения и выполнить процесс от пользователя, чей индекс публикуется. Ошибка импорта webui обычно указывает на неверный python-path или окружение виртуального интерпретатора.
Публикация не в корне сайта требует согласованного SCRIPT_NAME или префикса. Неправильная настройка проявляется тем, что стартовая форма открывается, но стили, ссылки пагинации, Preview или экспорт ведут не туда. Проверяют все маршруты через внешний адрес, а не только локальный порт приложения.
Плановое обновление индекса можно выполнять cron или отдельным таймером. Одновременное чтение и обновление поддерживается архитектурой Recoll, но тяжёлое полное перестроение лучше назначать на период низкой нагрузки. В журнале разделяют сообщения индексатора, WSGI-процесса и прокси, чтобы не искать ошибку извлечения в логе веб-сервера.
Типовые ошибки и способы исправления

Страница не открывается
Сначала проверяют, что процесс действительно запущен и слушает ожидаемый адрес. Локальная привязка разрешает соединение только с того же компьютера; сетевая требует явного адреса и правила брандмауэра. Если порт занят, выбирают другой и обновляют прокси. Сообщение о недоступности отличается от HTTP-ошибки: первое указывает на сеть или процесс, второе — на приложение.
При запуске из службы сверяют рабочий каталог и права на статические файлы. Белая страница без стилей означает, что HTML дошёл, а CSS нет; проверяют базовый префикс и маршруты static. Ошибка 500 требует журнала Python, где обычно виден отсутствующий модуль или шаблон.
Поиск возвращает пустой список
Нулевой результат при заведомо существующей фразе проверяют по слоям. Сначала убирают Folder и Dates, отключают stemming только для сравнения и вводят одно редкое слово. Затем выполняют тот же запрос непосредственно в Recoll. Если там тоже пусто, обновляют индекс и проверяют обработчик формата. Если основной поиск работает, изучают выбранный конфигурационный каталог WebUI.
Частая причина — процесс запущен от другого пользователя и читает пустую стандартную базу. Явный аргумент конфигурации или RECOLL_CONFDIR устраняет неоднозначность. Для нескольких баз проверяют разделение списка внешних каталогов и существование каждого пути.
Ошибка импорта recoll
Python должен видеть модуль, собранный для своей версии и архитектуры. Наличие графической программы Recoll не гарантирует наличие Python-расширения. Проверяют импорт в том же интерпретаторе и окружении, из которого запускается WebUI. Виртуальная среда может скрывать системный пакет; тогда добавляют совместимый модуль или используют интерпретатор, для которого он установлен.
После обновления Python бинарное расширение может перестать загружаться. Возврат к совместимой версии или установка обновлённой сборки безопаснее копирования файла модуля вручную. Сообщение о неопределённом символе указывает на несовместимость библиотек, а не на шаблон страницы.
Folder вызывает долгую загрузку
Уменьшают webui_dirdepth и очищают пользовательскую cookie, если она сохраняет прежнее значение. В чрезвычайно большой структуре список папок отключают как основной способ навигации и используют условие пути. Также проверяют, нет ли в индексе огромного числа уникальных виртуальных путей из почтовых контейнеров.
Если задержка возникает только после обновления базы, сравнивают число каталогов и внешние индексы. Ошибка инициализации дерева не означает повреждение поисковой базы; запрос без визуального списка может продолжать работать.
Preview пустой или искажённый
Проверяют, есть ли текст в сниппете. Пусты оба элемента — значит, содержимое не было извлечено. Сниппет есть, а Preview нет — изучают маршрут извлечения и права на исходник. Для PDF сравнивают вывод внешней утилиты. Скан отправляют на OCR, а файл с нестандартными шрифтами пересохраняют или обрабатывают другим фильтром.
Искажённый порядок колонок является свойством извлечённого текста. WebUI не восстанавливает макет. Для проверки таблиц и подписей открывают оригинал; Preview используют только для нахождения страницы или раздела по ключевым словам.
Open не работает, а Download работает
Такое сочетание означает, что сервер читает файл, но клиент не может открыть сформированный путь. Настраивают Locations, публикуют доступный сетевой адрес или выбирают Download действием по умолчанию. Ограничение браузера на локальные ссылки не устраняют ослаблением защиты без оценки риска.
После изменения сопоставления тестируют пути с пробелами, кириллицей и вложенными каталогами. Неправильная замена префикса способна сформировать внешне похожий, но несуществующий адрес.
Download сообщает, что файл не найден
Запись индекса могла устареть после перемещения или удаления. Запускают инкрементальное обновление и повторяют запрос. Если проблема только с вложением, проверяют, не изменился ли контейнер, и способен ли обработчик снова извлечь внутренний объект. Права процесса должны включать чтение всех компонентов пути.
Сетевой каталог может быть временно размонтирован. В этом случае перестроение индекса опасно: оно способно удалить записи о якобы пропавших файлах. Сначала восстанавливают монтирование, затем обновляют базу.
Настройки не сохраняются
Параметры хранятся в cookie. Блокировка cookie, приватный режим или очистка данных возвращают значения по умолчанию. Проверяют домен, путь публикации и заголовки прокси. При изменении базового адреса старая cookie может не применяться. Начальные параметры задают в recoll.conf, если одинаковое поведение требуется всем.
Некоторые ограничения не отображаются на странице Settings и задаются только администратором. Если поле отсутствует, это может быть намеренной настройкой webui_nosettings или лимитом webui_maxperpage, а не повреждением формы.
CSV или JSON недоступны
Администратор мог включить webui_nojsoncsv. Если ссылки видны, но ответ завершается ошибкой, проверяют список полей и данные с необычными символами. Слишком широкий запрос уменьшают и повторяют выгрузку, чтобы отличить ошибочную запись от ограничения размера или тайм-аута.
Через прокси маршруты экспорта должны получать те же права и префикс, что и поиск. Отдельное правило, блокирующее расширения или тип ответа, иногда пропускает HTML и отсекает CSV.
Результаты устарели
WebUI не запускает индексатор при каждом запросе. Проверяют время последнего успешного задания, журнал ошибок и доступность источников. Если новые файлы не появляются, но старые находятся, проблема почти всегда в расписании, правах или обработчике, а не в поисковой форме.
После изменения правил исключения или OCR может потребоваться принудительная переиндексация. Инкрементальный режим считает неизменившийся файл уже обработанным и не знает, что сменился внешний фильтр.
Практические рабочие сценарии
Для поиска пункта в договорном архиве вводят устойчивую фразу из условия, ограничивают Folder каталогом договоров и задают период. Сначала оставляют сортировку Relevancy, чтобы увидеть наиболее насыщенные совпадения. После определения шаблона переключаются на Date, проверяют новые редакции и открывают оригиналы. Номер договора добавляют отдельным условием, если фраза используется во многих проектах.
Для ответа на запрос аудитора формируют несколько узких выборок вместо одной огромной. Первая ищет название процесса в политиках, вторая — фамилию ответственного в корреспонденции, третья — код контроля в отчётах. Каждую выгружают в CSV с путём, заголовком, автором и датой. Затем вручную проверяют исходные документы; список результатов служит навигацией, а не доказательством содержания.
При обработке обращений поддержки ищут текст ошибки в кавычках, затем сокращают фразу до уникальной части, если точного совпадения нет. Folder ограничивают журналами и инструкциями, а письма подключают отдельным запросом. Сниппеты показывают, относится ли термин к решению или просто перечислен в журнале. Новые записи находят сортировкой по дате.
Для электронного архива сканов создают контрольный набор OCR. После каждой смены профиля распознавания ищут одинаковые редкие слова, сравнивают число совпадений и Preview. Документы с плохим результатом складывают в отдельный каталог для повторной обработки. WebUI ускоряет выборку проблемных файлов, но решение о качестве принимают по изображению страницы.
Для юридического удержания ищут идентификаторы дела, варианты названий сторон и фамилии. OR объединяет варианты, NOT исключает явно нерелевантные проекты, папка и период сужают область. Экспорт сохраняют вместе с текстом запроса и временем обновления индекса. Перед удалением или перемещением файлов результаты перепроверяют по источнику и действующим правилам доступа.
Для внутренней базы знаний OpenSearch добавляет быстрый вход из браузера. Сотрудник вводит термин в адресной строке, получает выдачу, читает сниппет и открывает инструкцию. Чтобы сценарий был надёжным, адрес сервиса остаётся постоянным, индекс обновляется чаще публикации документов, а заголовки и пути имеют понятные названия.
Сравнение Recoll WebUI с аналогами
Выбор решения зависит от того, нужен ли поиск по существующей файловой структуре, управление электронным архивом или редактирование отдельного PDF. Recoll WebUI минимально вмешивается в хранение: он использует индекс Recoll и показывает результаты в браузере. Аналоги отличаются способом индексации, требованиями к серверу и действиями после нахождения документа.
| Программа | Лучше подходит для | Главное ограничение |
|---|---|---|
| Recoll WebUI | Доступа через браузер к существующему индексу файлов | Требует настроенного Recoll и внешней защиты доступа |
| Recoll с интерфейсом Qt | Настройки индекса и персонального расширенного поиска | Графический клиент нужен на каждом рабочем месте |
| sist2 | Самостоятельного веб-поиска с миниатюрами и медиа | Нужно развернуть индексатор и поисковый сервер |
| DocFetcher | Личного поиска по файлам на компьютере и носителях | Нет штатного общего браузерного доступа |
| Paperless-ngx | Приёма, OCR, тегирования и ведения архива документов | Документы включаются в управляемый процесс хранения |
| PDF Commander | Открытия и изменения конкретных PDF-файлов | Не строит общий индекс разнородной коллекции |
Как выбрать подходящий инструмент
Recoll WebUI выбирают, когда файлы уже организованы в каталогах, индекс Recoll работает, а нескольким людям нужен простой поиск без установки графического клиента. Qt-интерфейс Recoll лучше для администратора и пользователя, который настраивает индекс, строит сложные запросы и работает на одном компьютере. Эти два интерфейса могут использовать одну поисковую базу, но решают разные задачи доступа.
sist2 уместен, когда важны веб-миниатюры, медиаконтент и самостоятельная поисковая архитектура. DocFetcher проще для переносного личного индекса и не требует публикации сервиса. Paperless-ngx выбирают при потоке сканов, OCR, тегах, корреспондентах и управляемом жизненном цикле документов. PDF Commander нужен после поиска, когда требуется изменить страницы, добавить элементы или подготовить отдельный PDF.
На практике инструменты не обязательно исключают друг друга. WebUI находит документ в большой коллекции, редактор меняет конкретный PDF, а система архива ведёт входящий поток. Граница должна быть ясной: поиск не подменяет управление правами и версиями, а редактор не заменяет полнотекстовый индекс.
Ограничения, которые важно учитывать
Интерфейс не создаёт и не настраивает индекс. Пользователь не может добавить каталог через Settings, выбрать OCR-язык или исправить обработчик PDF. Эти операции выполняются в Recoll и системной конфигурации. Поэтому сопровождение требует человека, который понимает источники, расписание и журналы индексатора.
Нет встроенной авторизации и разграничения документов по пользователям. Один экземпляр должен публиковать коллекцию с единым набором прав. Для разных отделов безопаснее использовать отдельные процессы и индексы либо полноценный внешний слой контроля. Скрытие ссылки или сложный адрес не ограничивают доступ.
Preview показывает извлечённый текст, а не визуально точную страницу. Нельзя проверять подпись, расположение печати, цвет, таблицу или форму только по нему. Download и Open переводят работу к оригиналу. Это особенно важно для юридических и финансовых документов.
Поиск не исправляет ошибки OCR, метаданных и структуры файлов. Он быстро и последовательно воспроизводит то, что записано в индекс. Контрольный набор документов и периодическая проверка качества обязательны при изменении обработчиков или источников.
Стабильная ссылка на конкретный результат не гарантируется: выдача зависит от запроса, сортировки и состояния индекса. Для цитирования документа используют постоянный идентификатор системы хранения или путь, а не номер позиции на странице. После обновления базы тот же номер может относиться к другому файлу.
Интерфейс ориентирован на функциональность, а не на сложные рабочие процессы. В нём нет согласования, тегирования пользователями, версий, комментариев и редактирования PDF. Если такие функции обязательны, поиск оставляют вспомогательным слоем или выбирают систему управления документами.

Проверка перед вводом в эксплуатацию
Сначала подтверждают поиск по контрольным файлам всех используемых форматов. Для каждого проверяют обычный запрос, точную фразу, поле имени, папку и дату. Затем тестируют Preview, Download и Open с рабочего компьютера, а не только на сервере. Вложение письма и файл архива включают обязательно, если такие источники индексируются.
Далее проверяют отрицательные сценарии: пользователь без прав не видит страницу, процесс не читает закрытый каталог, слишком большой Results per page ограничивается, а экспорт подчиняется тем же правилам доступа. В журнале не должны появляться пароли, содержимое документов или избыточные поисковые запросы.
После этого измеряют время широкого и узкого запроса, загрузку страницы с длинными сниппетами и Preview большого PDF. Порог тайм-аута прокси выбирают по реальному худшему случаю. Массовый Download и Preview ограничивают, если они мешают интерактивному поиску.
Наконец, документируют расположение конфигурации, пользователя процесса, способ обновления индекса, список внешних обработчиков и порядок восстановления. Резервное копирование индекса ускоряет возврат, но исходные документы остаются первичными. После восстановления выполняют контрольные запросы, потому что наличие файлов базы ещё не подтверждает их согласованность.
Точная настройка запросов для больших коллекций
В многомиллионном индексе широкое слово вроде договор почти не помогает: оно создаёт огромное множество кандидатов, а ранжирование тратит время на заведомо нерелевантные записи. Запрос начинают с самого отличительного признака — номера, редкой фразы, фамилии или названия проекта. Затем добавляют общеупотребительный термин, если он нужен для смысла. Такой порядок уменьшает объём работы поискового движка и делает первые результаты понятнее.
Сложное выражение полезно разбирать на части. Сначала выполняют каждое условие отдельно и записывают количество совпадений. Потом соединяют две части через AND, проверяют ожидаемый контрольный файл и лишь затем добавляют исключения. Если результат неожиданно исчез, последняя операция указывает на проблемный фильтр. Этот метод особенно важен при сочетании кавычек, полей, Folder и Dates, потому что форма незаметно добавляет свои ограничения к тексту Query.
OR лучше использовать для настоящих синонимов и вариантов написания, а не для десятков приблизительных слов. Чем шире альтернатива, тем менее информативен показатель релевантности. Для названия организации объединяют полное и сокращённое обозначение, для номера — варианты с дефисом и без него. Опечатки OCR добавляют только после просмотра извлечённого текста; заранее угадывать все ошибки распознавания неэффективно.
NOT применяют осторожно. Исключённое слово может находиться в приложении, цитате или стандартном колонтитуле нужного документа. Перед постоянным использованием отрицания просматривают несколько результатов, которые оно убирает. Для отсева черновиков надёжнее сочетать путь и имя файла, если архив соблюдает правила именования, чем исключать слово draft во всём содержимом.
Полевая фильтрация снижает шум, но метаданные бывают неполными. Запрос author может пропустить PDF после сканирования, у которого автор не задан, и одновременно найти документ, созданный из общего шаблона с чужим именем. Для критической выборки поле используют как один из каналов: выполняют отдельный запрос по содержимому и сравнивают объединение результатов.
Сортировку по Path удобно применять после текстового отбора. Она группирует соседние каталоги и помогает заметить, что большая часть совпадений пришла из резервной копии, папки экспорта или старого проекта. После обнаружения источника шума его исключают правилами индексирования либо ограничивают запрос. Удалять дубликаты из выдачи вручную каждый раз менее надёжно, чем исправить состав коллекции.
Производительность поиска и страницы результатов
Время, показанное рядом с количеством совпадений, относится к выполнению запроса, а не ко всей цепочке доставки. Пользователь ощущает сумму поиска, построения сниппетов, сериализации HTML, передачи по сети и отрисовки браузером. Поэтому жалобу поиск медленный разбирают измерениями: сравнивают время в строке Found, задержку до первого байта на прокси и момент полной готовности страницы.
Сниппеты требуют извлечения контекста из индексных данных. Чем больше Context words и Maximum context characters, тем тяжелее выдача. Если страница с 25 результатами заметно медленнее той же выборки без длинных абстрактов, уменьшают контекст. Пользователь всё равно может открыть Preview для подробного чтения. Компактный сниппет должен отвечать на вопрос о релевантности, а не заменять документ.
Сортировка по релевантности обычно использует естественный порядок поискового движка. Сортировка по метаданному может потребовать дополнительной работы и памяти, особенно при широкой выборке. Если запрос по одному слову и Date работает существенно медленнее, сначала сужают период или папку. Увеличение тайм-аута скрывает симптом, но не уменьшает объём операции.
Folder способен влиять на стартовую страницу ещё до первого поиска, поскольку дерево строится из путей индекса. Большое число уникальных каталогов появляется не только в файловой системе, но и внутри почтовых ящиков и архивов. Уменьшение webui_dirdepth ограничивает начальную структуру. Для опытных пользователей можно оставить минимальное дерево и описать синтаксис ограничения пути.
Results per page следует выбирать с учётом реального размера сниппета и ширины канала. Сто коротких записей могут быть приемлемы в локальной сети, но неудобны через удалённый доступ. Верхний административный предел защищает сервер от случайного выбора чрезмерного значения. Экспорт полного списка выполняют отдельным маршрутом, а не превращают HTML-страницу в отчёт на тысячи строк.
Preview и Download имеют другой профиль нагрузки, чем поиск. Первый может запускать извлечение большого документа, второй передаёт весь файл. На прокси устанавливают разумные ограничения тела ответа и параллельных соединений, не нарушая обычные рабочие документы. Статистика должна различать запросы поиска и загрузки, иначе несколько больших PDF выглядят как общая деградация поискового движка.
Индекс размещают на быстром локальном диске, если это возможно, а исходные документы могут оставаться на сетевом хранилище. Поиск тогда не зависит от чтения каждого файла, однако Preview и Download зависят. Такая разница объясняет ситуацию, когда список появляется мгновенно, а открытие конкретного результата задерживается из-за сети или спящего массива.
Метаданные, кодировки и качество текста
Заголовок результата берётся из метаданных, а при их отсутствии заменяется именем файла. Документ с красивым внутренним title легче распознать в выдаче, но старый шаблон может записать одинаковый заголовок во все файлы. Если десятки результатов называются Microsoft Word Document, ориентируются на filename и Path, а правила подготовки новых документов исправляют отдельно.
Кириллица корректно ищется, когда весь путь обработки использует совместимые кодировки: имя файла, извлечённый текст, метаданные и веб-ответ. Искажённые символы только в пути указывают на файловую систему или преобразование адреса; искажения в сниппете — на обработчик содержимого; неправильные буквы во всей странице — на заголовок кодировки HTML. Разделение симптомов помогает не переиндексировать коллекцию без необходимости.
Нормализация Unicode влияет на визуально одинаковые символы. Текст из PDF может содержать составные знаки, неразрывные пробелы или похожие латинские буквы. Поиск обычного слова тогда не всегда совпадает с тем, что видит человек. Preview позволяет скопировать извлечённый фрагмент и проверить его. Массовую проблему решают обработчиком или преобразованием при индексировании, а не инструкцией копировать странные символы каждому пользователю.
Размер файла и MIME-тип полезны для диагностики. Нулевой или необычно маленький объект может оказаться ярлыком, повреждённым вложением или текстовой заглушкой. Тип application/octet-stream означает, что формат не распознан достаточно точно. После установки нужного фильтра или исправления mime-конфигурации документ принудительно переиндексируют, чтобы старые поля не остались в базе.
Дата документа требует знания источника. В файловом архиве она часто отражает изменение на диске, в письме — почтовую метку, в офисном формате — внутреннее свойство. Копирование на новый сервер способно сделать весь архив свежим. Если период является юридическим критерием, дату из WebUI используют для навигации, а реквизит проверяют внутри исходного документа или специализированной системы.
Сниппет может соединять несколько участков многократного совпадения и обозначать пропуски. Его нельзя читать как непрерывную цитату. Для понимания контекста открывают Preview, а для точной формулировки — оригинал. Особенно осторожно работают с отрицаниями: соседняя часть предложения могла не попасть в абстракт и изменить смысл.
Сопоставление серверных и клиентских путей
Когда WebUI и документы находятся на одном компьютере, путь из индекса обычно понятен процессу, но браузер всё равно может блокировать локальную ссылку. В серверном сценарии различий больше: Linux-путь должен соответствовать сетевой папке Windows, контейнерный каталог — внешнему тому, а адрес внутри индекса — реальному ресурсу пользователя. Locations предназначен для систематической замены префикса, а не для поиска файла по имени.
Правило сопоставления проектируют от самого длинного специфичного префикса к общему. Если общий каталог заменить первым, специальные подпапки могут получить неверный адрес. После изменения проверяют файл в корне, глубоко вложенный документ, имя с пробелом, кириллицу и символ решётки. Работоспособность одного простого пути не подтверждает корректность экранирования остальных.
Open зависит от приложений и протоколов на клиенте. Даже правильный сетевой адрес не откроется, если операционная система не знает, чем обработать тип, или браузер запрещает схему. Download менее зависим: он передаёт байты и предлагает сохранить или открыть файл стандартным механизмом. Поэтому для разнородных рабочих мест заголовок разумно связать с Preview или Download.
Сопоставление не должно позволять уйти за пределы разрешённого хранилища. Внешний прокси и файловые права остаются основной защитой. Пользовательское поле Locations меняет способ открытия, но не должно считаться разрешением на чтение. Download всё равно выполняется с правами серверного процесса.
После миграции файлового сервера старые пути в индексе обновляют перестроением или корректной индексацией нового расположения. Временное сопоставление помогает открыть документы в переходный период, но скрывает дубликаты, если обе копии проиндексированы. Сортировка по Path и запрос по уникальной фразе позволяют выявить двойную выдачу до удаления старого источника.
Резервное копирование и перенос конфигурации
Для восстановления нужны не только файлы кода WebUI. Сохраняют конфигурационный каталог Recoll, поисковую базу или процедуру её перестроения, список внешних обработчиков, параметры службы и правила прокси. Исходные документы остаются главным источником, поэтому резерв индекса рассматривают как ускорение восстановления, а не единственную копию данных.
Перенос на другой сервер проверяют в два этапа. Сначала запускают Recoll под целевой учётной записью и подтверждают контрольные запросы. Затем подключают WebUI к тому же каталогу и проверяют действия с файлами. Если сразу менять адрес, пользователя, пути и версию Python, источник ошибки трудно определить.
Cookie пользовательских настроек не входит в серверную резервную копию. После смены домена или базового пути пользователи получают начальные значения. Важные общие параметры задают в recoll.conf, а не рассчитывают на ручную настройку каждого браузера. При этом персональные предпочтения количества результатов и действия заголовка могут отличаться без влияния на индекс.
Перед восстановлением из старой поисковой базы убеждаются, что пути и документы соответствуют её состоянию. Индекс ссылается на удалённые объекты и способен показывать устаревшие сниппеты. После возврата выполняют инкрементальное обновление и контрольные загрузки. Если изменились обработчики или правила исключений, безопаснее запланировать полное перестроение.
Конфигурацию службы хранят с явными версиями зависимостей и командой запуска. Это позволяет повторить окружение и избежать случайного использования другого Python. Секреты прокси и сертификаты отделяют от общего описания. Документ восстановления должен включать проверку авторизации, а не только появление поисковой формы.
Административные параметры WebUI
Начальные значения интерфейса читаются из основной конфигурации Recoll. webui_context задаёт число слов вокруг совпадения, webui_maxchars — верхнюю длину абстракта, webui_stem — исходное состояние поиска похожих форм. webui_timefmt управляет представлением времени, webui_dirdepth — глубиной дерева каталогов, webui_maxresults — пределом всей выдачи, webui_perpage — числом записей на странице.
webui_csvfields определяет поля CSV и JSON, а webui_title_link — действие щелчка по заголовку. Значения download, open и preview выбирают с учётом доступности файлов клиентам. Настройки, доступные на странице, сохраняются в cookie и могут перекрывать начальные. После административного изменения тестируют новый профиль браузера или очищают старое значение.
webui_nojsoncsv отключает экспорт, webui_maxperpage ограничивает пользовательское число результатов, webui_nosettings скрывает страницу параметров, webui_defaultsort задаёт исходную сортировку. Эти опции нельзя менять из обычного Settings. Они подходят для ограничения нагрузки и единообразия, но не являются системой безопасности: маршруты и доступ защищают на внешнем уровне.
Нулевые значения имеют специальный смысл. Для Maximum results ноль означает отсутствие лимита, а для верхнего ограничения per page — отсутствие дополнительного административного потолка. Перед вводом значения проверяют документацию конкретного параметра, потому что ноль может означать выключено, а не буквальное отсутствие результатов.
Параметры оценивают на реальном индексе. Глубина два безопасна для небольшой домашней структуры и может быть чрезмерной для миллионов виртуальных папок. Двадцать пять результатов удобны с короткими сниппетами и тяжелы с максимальным контекстом. Настройка — это баланс времени, читаемости и нагрузки, а не универсальный набор чисел.
Ежедневный порядок работы
Пользователь начинает с короткого запроса и смотрит количество совпадений. Если результатов слишком много, добавляет устойчивую фразу, поле, папку или период. Если слишком мало, снимает ограничения по одному, проверяет stemming и сравнивает с основным поиском Recoll. Такой порядок сохраняет понимание, почему документ вошёл или не вошёл в выборку.
Затем читают путь, автора, дату и сниппет. Preview используют для быстрой проверки текста, Download — когда серверный путь недоступен, Open — когда настроено безопасное сопоставление расположений. Для значимого решения всегда открывают оригинал, поскольку извлечённый текст не передаёт весь макет и реквизиты.
Повторяемые выборки сохраняют как текст запроса и при необходимости экспорт. При изменении состава коллекции фиксируют время последнего обновления индекса. Если результат неожиданен, не меняют сразу все параметры: сначала отделяют проблему запроса от проблемы индекса, затем проверяют доступ к файлу и только после этого сетевое развёртывание.
Такой процесс превращает Recoll WebUI в быстрый навигатор по PDF, письмам, офисным документам и архивам. Его сильная сторона — единый полнотекстовый поиск с контекстом и доступом к исходнику; надёжность обеспечивают качественный индекс, понятные пути, регулярное обновление и защита веб-доступа.