This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to show
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
- Local
- Codespaces
HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Как пользоваться программой поиск
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
Latest commit message
Commit time
readme.md
PosikEngine Search Bot
Всё найдём!
Это локальный поисковый движок. Можно поставить себе на компьютер, на сервер, на холодильник, главное, чтобы была Java, и он сможет индексировать сайты для поиска. Можно проиндексировать ресурсы в закрытой сети, или до которых по каким-то иным причинам не добрались большие движки. Можно даже использовать как локальный поисковый движок для своего сайта благодаря API.
А ещё это учебный проект. Делать его было интересно и познавательно.
- russianmorphology для морфологического анализа страниц сайтов
- crawler-commons используется частично для обработки файлов robots.txt
- spring boot (web, jpa, security) как основной фреймворк проекта, отвечающий за управление контекстом приложения, развёртывание и обработку запросов
- Junit 5 и Mockito для тестирования
- Lombok чтобы меньше писать
Как его запустить?
Для сборки понадобятся:
При сборке необходимо использовать прилагающийся файл settings.xml . Это необходимо для скачивания и подключения библиотеки russianmorphology к проекту. Можно скопировать содержимое в основной файл настроек Maven, или использовать команду для сборки:
mvn -s settings.xml clean install
Перед сборкой следует отредактировать файл настроек application.yml или скопировать его и положить рядом с исполняемым .jar файлом, что позволит менять настройки динамически, без пересборки приложения.
Настройка подключения к БД
Настройки подключения к базе данных задаются следующим образом:
Изменение сетевых настроек IP видеокамер и видеорегистраторов SEVEN Systems. Утилита Search Tool.
datasource: driver-class-name: org.postgresql.Driver url: jdbc:postgresql://localhost:5432/search_engine username: search_engine password: posikEngine
Указывается драйвер подключения, параметры соединения, включая адрес, порт и имя схемы, а так же логин и пароль для доступа к БД.
В настройках Hibernate отдельного внимания заслуживает настройка ddl-auto , которая отвечает за пересоздание таблиц при перезапуске программы. Возможные варианты:
- none не предпринимать никаких действий
- create создать новые таблицы при запуске, старые данные удаляются
- create-drop создать новые таблицы при запуске, при завершении приложения удалить их
- validate проверить соответствие таблиц описанным в программе сущностям
- update при наличии расхождений в состоянии БД и в описании сущностей в программе, обновить таблицы в БД
Для обычной работы рекомендуется использовать флаги none или update , как альтернативный вариант, можно вообще не использовать этот тег.
Настройка поискового движка
Для настройки самого поискового движка используется группа параметров search-engine-properties .
Для настройки имени поискового бота (Как он будет представляться сайтам в интернете) и главного адреса страницы используются параметры
search-engine-properties: user-agent: PösikEngineSearchBot home-page: /admin
Здесь же задаётся перечень сайтов, которые будут доступны для обработки и перечень классификаторов тегов html с весами:
preload: sites: — url: https://nikoartgallery.com name: Галерея искусств Niko fields: — name: title selector: title weight: 1.0
Эта информация загружается в базу данных при запуске программы и используется при работе.
Доступ к приложению защищён, и для использования веб-интерфейса или API необходимо авторизоваться. Всего предусмотрено две роли пользователей:
- ADMIN — обладает полным доступом ко всем страницам сайта и методам API;
- SEARCH_API_USER — пользователь с ограниченными правами, который имеет доступ только к методу /api/search .
Имена, пароли и роли пользователей задаются в настройках в разделе search-engine-properties.preload.authorisations с указанием префикса ROLE:
preload: authorisations: — username: webAdmin password: webPassword role: ROLE_ADMIN — username: searchUser password: searchUserPass role: ROLE_SEARCH_API_USER
Данные пользователей сохраняются в базе данных (пароль хранится в зашифрованном виде) и используются для авторизации запросов.
Сборка и запуск
Как было описано выше, для сборки используется команда mvn clean install или mvn -s settings.xml clean install если необходимо подключить внешний файл с настройками.
В результате выполнения этой команды в папке target/ в корне исходного кода, будет создан файл posik-engine-1.2.jar , который можно перенести в любое место и запустить с помощью команды
java -jar posik-engine-1.2.jar
Работа с программой
Для удобства использования программы предусмотрен веб-интерфейс. По умолчанию он доступен по адресу admin . Доступ к нему возможен после авторизации пользователя с ролью ADMIN через форму на странице login
Веб-интерфейс содержит три вкладки на которых собраны инструменты работы с поисковым движком.
На этой вкладке содержится статистика о количестве сайтов, страниц, лемм, и статусе, в котором находятся страницы (Индексируются, проиндексированы, или в состоянии ошибки)
При просмотре детальной статистики для каждого сайта указывается дата и время последнего изменения, число страниц, число лемм и сообщение о последней ошибке, если такое есть.
Здесь размещена кнопка START INDEXING . Она запускает индексацию/переиндексацию всех страниц для всех сайтов, которые ещё не индексируются в настоящий момент.
Ниже находится поле, в которое можно ввести адрес отдельной страницы для индексации/переиндексации. Если она находится на одном из сайтов, про которые программа знает, она будет обработана.
После запуска полной индексации интерфейс вкладки меняется: становится доступной только одна кнопка STOP INDEXING .
Она прерывает все процессы индексирования, выполняющиеся в данный момент.
Поиск возможен как по всем сайтам, так и по какому-то одному. Через веб-интерфейс производится поиск 10 самых релевантных запросу страниц. Если по запросу ничего не найдено, алгоритм поиска убирает лишние слова, чтобы расширить доступные варианты. Для поиска возможно использовать как русские, так и английские слова. Только эти языки поддерживаются механизмом индексации.
Помимо работы с программой через веб-интерфейс, можно использовать REST API. Ниже приведены запросы и возможные варианты ответов.
Следует отметить что ответ об ошибке универсален и имеет следующий формат:
< «result»: false, «error»: «сообщение об ошибке» >
Ниже будут указаны только сообщение об ошибке.
Любые действия с API требуют базовой аутентификации по имени пользователя и паролю. Пользователи с ролью ADMIN могу использовать любые методы. Пользователям с ролью SEARCH_API_USER доступен только метод /api/search .
Метод без параметров. Запускает полную индексацию или переиндексацию всех сайтов, которые не индексируются в момент запуска. Если все сайты уже индексируются, возвращает следующее сообщение об ошибке: Индексация уже запущена . Если произошла ошибка в логике индексирования: Неизвестная ошибка индексирования . При успешном запуске возвращает
< «result»: true >
Метод без параметров. Останавливает процесс индексации всех индексирующихся сайтов. Если ни один сайт не индексируется, возвращает следующее сообщение об ошибке: Индексация не запущена . Если произошла ошибка в логике индексирования: Неизвестная ошибка индексирования . При успешной остановке возвращает
< «result»: true >
- url — полный адрес страницы для добавления/переиндексации
Метод добавляет одну страницу для индексации. Если страница не принадлежит ни одному из сайтов, то в ответе присылается следующее сообщение об ошибке: Данная страница находится за пределами сайтов, указанных в конфигурационном файле . При успешном запуске возвращает
< «result»: true >
- siteUrl — адрес сайта для индексации или переиндкесации
Запускает полную индексацию одного сайта. Если сайт уже индексируется, возвращает следующее сообщение об ошибке: Индексация для сайта siteUrl уже запущена . Если произошла ошибка в логике индексирования: Неизвестная ошибка индексирования . При успешном запуске возвращает
< «result»: true >
Метод без параметров. Используется для получения статистики, которая отображается на вкладке Dashboard. Пример ответа:
< «result»: true, «statistics»: < «total»: < «sites»: 10, «pages»: 436423, «lemmas»: 5127891, «isIndexing»: true >, «detailed»: [ < «url»: «http://www.site.com», «name»: «Имя сайта», «status»: «INDEXED», «statusTime»: 1600160357, «error»: «Ошибка индексации: главная страница сайта недоступна», «pages»: 5764, «lemmas»: 321115 > ] > >
В поле statusTime передаётся дата и время в миллисекундах.
- query — поисковый запрос, не может быть пустым
- site — url сайта для поиска без / на конце, если пуст, то поиск производится по всем сайтам, сайт должен быть проиндексирован.
- offset — отступ от начала, для постраничных запросов, по умолчанию 0
- limit — предельное число страниц, которые будут найдены и отображены, по умолчанию 20
Основной поисковый запрос. Производит обращение к базе проиндексированных страниц и находит релевантные поисковому запросу страницы, сортируя их в порядке убывания релевантности. Пример успешного ответа:
About
Simple local search engine
Источник: github.com
Функциональные возможности Search линейка Search/Techcard
По своим функциональным возможностям система Search ориентирована для использования на крупных, средних и малых предприятиях, предъявляющих высокие требования к электронному документообороту и ведению базы данных выпускаемых и используемых на предприятии изделий.
Ведение электронного архива технической документации
Электронный архив Search представляет собой базу данных, в которой система хранит документы и информацию, необходимую для их идентификации и поиска — обозначение, наименование, формат и т.д. Для упорядочения документов по их статусу (утвержден/не утвержден), типу (конструкторские/технологические/распорядительные) и другим признакам, Search обеспечивает гибкую модель, в которой весь архив предприятия строится из необходимого количества архивов различного назначения и статуса (архивы рабочих и утвержденных документов, архивы извещений, картотека бумажных документов и пр.).
Для каждого из архивов администратором определяется:
- права доступа пользователей к документам архива;
- набор параметров, которые будут иметь документы, помещенные в архив;
- набор необходимых подписей, которые документ должен получить для того, чтобы система разрешила поместить его в этот архив;
- правила изменения документов архива — необходимость выпуска извещения об изменении с последующим утверждением произведенных изменений и др.
Контролируемый доступ
Search обеспечивает гибкое управление и контроль прав доступа к различным объектам системы (архивам, документам, изделиям, классификаторам, процессам и т.п.)
Администратором системы определяются:
- Права доступа как к каждому документу в отдельности, так и ко всем документам, находящимся в архиве.
- Права доступа для групп пользователей и для отдельного пользователя или владельца объектов.
- Периоды действия прав доступа.
- Настройки аудита событий, происходящих в системе, связанных с объектами и архивами, пользователями и группами пользователей, параметрами документов и проектов и т.п.
Интеграция с CAD/ECAD-системами
Search понимает внутренний формат документов: AutoCAD, BricsCAD, Inventor, SOLIDWORKS, Solid Edge, NX (Unigraphics), Creo (Pro/ENGINEER), КОМПАС-3D, Altium Designer, Mentor Graphics, PCAD (версии 2002 и выше), OrCAD.
Системой Search обеспечивается:
- Автоматическое считывание данныx из основной надписи и данныx, необходимыx для заполнения карточки документа/изделия при занесении файлов в архив для всех перечисленных выше систем.
- Автоматическое считывание состава сборки/проекта. Вместе с возможностью пакетного занесения документов в архив это обеспечивает быстрое первоначальное наполнение архива.
- Автоматическая двунаправленная синхронизация данных между 3D-моделями и карточками документов и изделий в архиве Search.
- Автоматическая синхронизация конфигураций моделей деталей и сборок с вариантами исполнения изделия в архиве Search.
- Автоматическая генерация конструкторских спецификаций.
- Запоминание ссылочных связей между различными файлами. При необходимости редактирования сборки на другом компьютере в локальной сети, на дисках которого нет файлов этой сборки, Search автоматически извлечет необходимые файлы из архива с полным воссозданием исходной структуры папок.
- Совместная работа коллектива разработчиков над моделированием сборки, управление составом изделия и статусом документа непосредственно из CAD/ECAD-системы.
Быстрый поиск и просмотр
Search предоставляет мощные средства для поиска документов (изделий) по различным критериям.
Выборка — список документов или объектов, сохраненный для повторного использования. Объекты выбираются вручную или автоматически по заданным условиям из всего доступного множества. Выборки используются для поиска и группировки документов и объектов по различным критериям: по типам документов (чертежи, спецификации и т.д.), по типам объектов (детали, стандартные изделия и т.д.), по наличию подписей (например, подписаны нормоконтролером), по принадлежности к проекту и т.д.
Классификаторы позволяют упорядочить архивы документов и базу данных изделий, автоматически генерировать обозначение и наименование для новых документов и изделий по задаваемой в классификаторе формуле. Иллюстрированные классификаторы дают возможность легко производить поиск документов и прототипов для новых изделий.
Search позволяет хранить в архиве любые типы документов — чертежи, спецификации, текстовые документы и т.д. Поддерживаются документы, состоящие из нескольких файлов (чертежи на нескольких листах, гибридные чертежи TIFF+DWG и др.), документы, включающие в себя ссылки (XREF в AutoCAD, 3D-детали, входящие в 3D-сборку и т.д.). Имеется возможность создания картотеки бумажных документов.
Для каждого типа документа можно назначить программы просмотра и редактирования.
Информацию по документам, хранящимся в архиве, можно свести в отчеты. Отчеты могут быть простыми или на бланках, которые могут быть созданы при помощи программы Редактор бланков, входящей в состав Search. При создании отчетов есть возможность использования вычисляемых полей.
Управление составом изделия
Конструкторские документы (спецификации, чертежи, 3D-модели и др.), занесенные в архив, служат источником информации, которую Search использует для ведения базы данных изделий, а также для построения взаимосвязей между ними.
Search позволяет получать:
- состав изделия с возможностью получения полного списка используемых в изделии узлов и деталей и их количества на данное изделие;
- применяемость изделия в других изделиях;
- полный комплект документации на изделие, включая документы на входящие в него узлы и детали.
- наглядная графическая визуализация состава и применяемости изделия в виде схемы связей;
- сравнение составов произвольно выбранных изделий на наличие общей применяемости или для оценки различий в их составах.
- получение различных отчетов и выборок по изделиям;
- экспорт/импорт информации об изделиях в/ из других PDM/MRP систем в XML-формате.
Конфигурирование состава
Состав изделия может быть изменен по требованию заказчика, поэтому для предотвращения лавинообразного роста вариантов исполнения сложного изделия в Search доступен специальный сервис — конфигуратор продукции.
Объект описывается специальными атрибутами — опциями, отражающими ключевые характеристики и варианты комплектации. Опция содержит в себе список значений, каждое из которых может использоваться для задания условия применения объекта. При выборе опций Search контролирует их совместимость в соответствии с правилами, заданными конструктором.
Для удобства работы различных категорий пользователей Search позволяет создавать промежуточные конфигурации изделия, в которых те или иные опции получают предустановленные значения. В Search для этого могут быть созданы так называемые спецификации комплектации изделия. Например, для отдела маркетинга для удобной работы с заказчиками, могут быть созданы различные устойчивые комплектации для разных регионов, экологических требований и т.д.
По завершении конфигурирования состава формируется спецификация заказа, в которой для каждой позиции заказа хранится список согласованных с заказчиком опций изделия, что позволяет получить точный состав изделия на дату исполнения заказа.
Конструкторские спецификации
В состав системы входит встроенный редактор конструкторских спецификаций. Поддерживаются как обычные (единичные) спецификации, так и групповые спецификации форм А и Б по ГОСТ 2.113, а также спецификации на «парные» изделия (например, левое и правое исполнения), характерные для автомобильной промышленности. Обеспечивается работа с допустимыми заменами в составе изделия в различных режимах – один-на-один, один-на-много, много-на-много и др.
Производственные заказы
Производственные заказы в Search позволяют вносить изменения в состав заказываемой продукции. Эта возможность будет полезна предприятиям с мелкосерийным и единичным типом производства.
При формировании производственного заказа возможны следующие изменения серийного изделия:
- добавление новых позиций в состав заказа;
- удаление (или изменение количества) произвольных позиций в составе заказываемого изделия и во входящих в него подсборках;
- изменение состава изделий и состава подсборок этих изделий (например, замена одних объектов на другие);
- замена версии изделия;
- замена материала деталей;
- выбор варианта допустимых замен в составе изделия, а также опций для конфигурируемых изделий.
При добавлении в состав заказа новых изделий конструкторская и технологическая документация будет разрабатываться только для них, что позволит оперативно передать заказ в производство.
Управление жизненным циклом изделия
Search предоставляет широкие возможности для совместной работы над изделием на протяжении всего жизненного цикла, обеспечивая высокую точность и производительность.
- Ведение электронного дела изделия позволяет получить всю необходимую информацию об изделии на заданную дату, по серийному номеру изделия или номеру партии:
- документы на изделие (конструкторские, технологические, распорядительные и т.д.) на момент выпуска данной версии/экземпляра/партии изделий и их подписи;
- точный состав изделия с информацией о допустимых заменителях, использованных в данной версии/экземпляре;
- документы, касающиеся конкретного экземпляра/партии изделий (заказ, карта отклонений, ремонты и т.д.);
- карточку с параметрами изделия на момент выпуска изделия.
Электронный документооборот
Search имеет в своём составе модуль маршрутизации документов, оснащённый утилитой редактирования и построения шаблонов бизнес-процессов в графическом виде.
- Развитая логика Workflow с использованием системных и пользовательских переменных, условных переходов, параллельной и последовательной маршрутизации, VB- и Java-скриптов и т.д.
- Настраиваемые экранные формы для организации диалога с пользователями — участниками процесса.
- Таймеры ограничения времени прохождения ветвей маршрутов или автоматического запуска других ветвей или маршрутов по истечении указанного срока, контроль сроков прохождения документов.
- Сложные маршруты, состоящие из других подмаршрутов с неограниченной степенью вложенности.
- Возможность автоматического вызова из маршрутов внешних программ и динамических библиотек, написанных пользователями.
- Получение отчетов об истории выполнения процессов в формате MS Excel.
- Интеграция Workflow с внешней электронной почтой.
Для рассылки сообщений, заданий и контроля за их исполнением, а также для согласования документации, используется механизм внутренней электронной почты.
Пользователи могут без труда в соответствии со своими правами инициировать бизнес-процессы, прикреплять к ним документы, просматривать принятые, выполненные и отправленные задания, контролировать выполнение запущенных процессов и т.д.
Согласование и утверждение документов
Каждый документ в архиве имеет электронную карточку подписей, в которой Search фиксирует кто, когда и в какой должности подписал данную версию документа. Обеспечивается автоматизация процедур согласования и утверждения документов путем их рассылки по соответствующим маршрутам различным пользователям для сбора необходимых подписей. При этом ведется история согласования для каждого документа. Внутренний механизм электронных подписей Search при необходимости может быть легко интегрирован с различными системами электронной цифровой подписи, поддерживающими интерфейс Microsoft CryptoAPI.
Проведение изменений утвержденных документов
Система обеспечивает проведение изменений утвержденных документов с выпуском извещений различных типов (извещения об изменении, предварительные извещения, предложения об изменениях, дополнительные извещения, комплект извещений), их утверждением со сбором необходимых подписей и учетом всех имеющихся версий документов. На основании выпущенных извещений автоматически формируется лист регистрации изменений для каждого документа.
Автоматизация функций ОТД
Search обеспечивает учет и хранение документов, передаваемых в отдел технической документации (ОТД).
Основные решаемые задачи:
- Хранение аннулированных и замененных документов
- Учет применяемости документации
- Учет выдачи (рассылки) и возврата копий внутренним и внешним абонентам
- Учет выдачи неучтенных копий и их возврата
- Регистрация извещений об изменении документации
- Замена учтенных копий документов у абонентов после внесения изменений
Канцелярский документооборот
Для организации устойчивого и управляемого канцелярского документооборота системой Search обеспечивается:
- Регистрация любого документа как канцелярского (входящего, исходящего и внутреннего) с указанием регистрационного номера, контрольных сроков, исполнителей и содержания документа.
- Создание контрольных и неконтрольных поручений с указанием необходимости ответа.
- Возможность создания подчиненных поручений.
- Ведение справочников внешних организаций-корреспондентов предприятия, должностных лиц организаций-корреспондентов в виде иерархической структуры.
- Возможность организовать переписку между производственными подразделениями и предприятиями в виде дерева взаимосвязанных документов.
- Создание любых выборок по параметрам канцелярских документов для контроля состояния документооборота.
- Создание и ведение на предприятии нескольких точек канцелярского документооборота по разным подразделениям.
- Прием и отправка почты через внешний почтовый клиент, поддерживающий интерфейс Extended MAPI (например Microsoft Outlook) с регистрацией входящей и исходящей корреспонденции в канцелярии Search.
- Согласование канцелярских документов с помощью листов согласования.
Источник: intermech.ru
Приложение iSearching — отзыв
Приложение iSearching используется для регистрации и поиска Bluetooth метки iTag (она же MLE-15).
Метку я случайно увидела в зоомагазине. Сначала подумала, что это QR код, но потом поняла, что это всего лишь брелок антипотеряшка, работающий при помощи Bluetooth и батарейки CR2032. Тем не менее решила купить, чтобы попробовать. Ведь стоил он всего 3 €.
Упакован брелок был неказисто — в пакетик с зип застежкой.
iTag в упаковке
Внутри инструкция и сам девайс.
Инструкция (перевод Google Переводчик)
Первым делом скачала приложение по предложенному QR коду. Затем попыталась подключить к нему девайс. Но оказалось, что батарейка внутри была севшей ♀️. Пришлось купить новую за 5 €!
Кстати, батарейки должно хватать примерно на год (проверю).
Для подключения метки к приложению нужно нажать на кнопку брелока в течение 3 секунд. Так включается режим коннектинга.
iTag или MLE-15
Далее приложение определило метку и между ними появилась связь.
Что дает приложение?
Самая главная функция — возможность поиска метки. Но оговорюсь, если она будет, например, в соседней комнате, то сигнал не пройдёт. Поэтому придется носить телефон с собой по всем предполагаемым местам нахождения метки, так чтобы между брелоком и телефоном не было стен.
В приложении имеются дополнительные функции:
- геолокация;
- фотосъемка;
- аудиозапись (функция включения при отправке запроса поиска);
- обратная связь.
То есть с метки можно послать запрос на поиск телефона, но для реализации этой функции приложение должно быть всегда запущено на смартфоне. Потому что как только приложение закрывается, через некоторое время с меткой теряется связь. Как сделать, чтобы приложение работало в фоновом режиме, не закрываясь, постоянно, на iPhon, я не поняла. Поэтому для меня эта функция оказалась особенно бесполезной и разочаровывающей.
Возможно, на Android фоновая работа приложения как-то предусмотрена? — Не знаю.
Настройки приложения
При отправке из приложения запроса на поиск метка начинает мигать и пикать, а если отправить с метки на телефон, то на телефоне начинает играть выбранная мелодия или сигнал.
Звонок телефона при приеме запроса на поиск от брелока
Для удобства координации метки в приложении можно переименовывать. Так свою я назвала Alisa’s key.
Настройки брелока
Решила, что буду использовать метку, как брелок для автомобильного ключа. Потому что для кота такой девайс оказался по сути бесполезным. То есть в зоне видимости я и так его увижу, а вот если он уйдёт, хотя бы в другую комнату, то связь с Bluetooth будет потеряна и метка станет бесполезной.
Поэтому могу рекомендовать метку приоритетно в качестве брелока для ключей либо для собаки во время прогулки. Если приложение будет работать, а метка удалится от телефона более, чем на 22 м (дальность действия на открытом пространстве) либо собака скроется из зоны видимости в радиусе действия метки, то последняя начнёт пищать.
Достоинства
- Универсальность
- Цена
Источник: irecommend.ru