Это личный проект, который я создал, чтобы узнать больше о двух вещах: системы поиска информации и комбинаторов анализатора.
По сути, эта программа представляет собой реплику с двумя командами: индекс и запрос.
Проверьте репо, компакт -диск в каталог, запустите «сборка стека»
Стек: https://docs.haskellstack.org/en/stable/readme/
Стек потрясающий. Используйте стек.
У вас есть два варианта.
Не паникуйте! Это работает, как предполагалось. Это простая реплика, поэтому программа ждет, когда вы запустите команды. Программа поддерживает два - индекс и запрос.
Команда индекса индексирует документ и готовит его к поиску. Команда берет два аргумента. Первый - это индекс документов в целочисленной форме. Второй - это список слов, разделенный пробелом.
Несколько примеров команд:
Обратите внимание, что если вы повторно используете индекс, предыдущий документ удален в пользу нового. Итак, если вы запускаете вышеуказанные команды, а затем ищете пиццу, вы не получите никаких результатов.
Слова в списке слов должны быть составлены из букв. Числа и символы не действительны, и выбросят ошибку.
Команда запроса запускает поиск в документах, которые вы ранее проиндексировали. Самый простой запрос - одно слово:
Но они могут стать более продвинутыми и особыми, объединяя термины с логическими операторами - | (или) и (и), как так:
Вы можете гнетать эти запросы на произвольную длину, но при добавлении операторов запрос займет больше времени. Это связано с тем, что библиотека полнотекстого поиска не поддерживает логические запросы, просто поиск терминов. Таким образом, это приложение должно присоединиться (либо Union, либо по пересечению), полученный индекс перечисляется вручную.
Обратите внимание также, что каждый термин должен быть вложен в паренс. Притворитесь, что вы в странном варианте LISP, и все будет в порядке.
Просто введите пустую команду. Ctrl-D также будет работать (EOF).