Как найти номер строки или номер страницы, используя Lucene - PullRequest
0 голосов
/ 15 февраля 2012

Кто-нибудь может мне помочь?

Для моего проекта я использую lucene для индексации файлов. Он только дает мне имя файла и местоположение, но не упоминает номер строки и номер страницы.

Можно ли с помощью Lucene найти номер строки или номер страницы? Пожалуйста, помогите мне, как это сделать.

1 Ответ

1 голос
/ 22 февраля 2012

Это оказалось слишком длинным для комментария, поэтому я просто сделал его ответом.

Думаете ли вы о выводе grep (* nix tool), где вы получаете grep для набора документов и получаете набор результатов, который содержит совпадения с номером строки и текстом? EG:

46: I saw the brown fox jumping over the lazy dog

Если это так, Lucene не работает так. В ОС grep для упрощения открывает каждый документ последовательно и запускает указанный вами шаблон для каждой строки содержимого внутри каждого документа. Следовательно, он может затем производить вывод, подобный тому, что я перечислил ранее, потому что он работает с файлом так, как он существует на компьютере. Lucene ведет себя по-разному.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...