как получить сохраненное поле документа по идентификатору документа в lucene? - PullRequest
2 голосов
/ 21 июля 2010

Я пытаюсь объединить оценку lucene с PageRank, я пытался изменить DefaulyShoity, чтобы добавить уже имеющийся PageRank (в массив с соответствующим URL), но проблема в том, что я не знаю, как получить поле документа где хранится URL документа. TermDoc может возвращать только docID. Или у меня есть другая идея - изменить TopScoreDocCollector, у которого есть метод с именем collect (int docid), которому также присвоен docid, но я до сих пор не знаю, как получить сохраненное поле. Кто-нибудь получил представление о том, как получить сохраненное поле документа по идентификатору документа? Или есть идеи о том, как сочетать люцен с PageRank? Большое спасибо.

1 Ответ

2 голосов
/ 22 июля 2010

Чтобы получить значение сохраненного поля в Lucene по внутреннему идентификатору Lucene, используйте IndexReader.document (int n). Если у вас есть собственный UID, проиндексированный по этому термину, вам нужно выполнить поиск по этому термину, получить Lucene ID и затем вызвать IndexReader.document (int n).

Вы пытаетесь рассчитать PageRank на лету? Если это так, мне это кажется безумным. Обычно PageRank - это пакетный процесс, который выполняется, и статическая оценка PageRank, назначаемая для каждого документа, добавляется в качестве повышения во время индексации.

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