Поиск - acRnR/learner_corpus GitHub Wiki

Непосредственно за вывод результатов поиска отвечает класс Search в TestCorpus\views.py. Функция этого класса собирает основную информацию по корпусу, вызывает функции поиска и возвращает результат с пагинацией страниц. Основной поисковый механизм лежит в TestCorpus\search.py. Именно функции из этого файла вызывает класс Search.

В файле search.py также присутствует jquery, чтобы аннотации отображались при поиске. Поиск точных форм реализован в функции exact_search. Лексико-грамматический поиск реализован в lex_search.

Остальные функции в этом файле используются внутри exact_search и lex_search. В collect_data собирается сам запрос. Остальные функции (parse_lex -- поиск по словоформе, parse_gram -- поиск по тегу) добавляют ограничения на запрос. В этом же файле находится функция формирования запроса для выбранного подкорпуса (get_subcorpus), но она не может работать, так как выбор подкорпуса не работает.

Внутри exact_search и lex_search формируется jquery, достаются предложения, удовлетворяющие запросу, и генерируется некоторая статистическая информация.