Lucene numDocs и doqFreq для пользовательского класса подобия

Я делаю приложение с Lucene (я новичок в этом) и столкнулся с некоторыми проблемами. В моем приложении используется библиотека Lucene 2.4.0 с пользовательской реализацией сходства (импортируется jar)

В моем приложении я вычисляю doqFreq и numDocs вручную (я добавляю значения всех индексов, а затем вычисляю глобальное значение, чтобы использовать его в каждом запросе), и я хочу использовать эти значения в пользовательской реализации подобия, чтобы вычислить новый ЦАХАЛ.

Проблема в том, что я не знаю, как использовать (или отправлять) новые значения doqFreq и numDocs из моего приложения в этой новой реализации сходства, поскольку я не хочу менять код lucene, кроме этого дополнительного класса.

Любые предложения или примеры? Я читал документы, но не знаю, как к этому подойти: с

Спасибо


person David zsl    schedule 05.04.2010    source источник
comment
Почему вы должны рассчитывать docFreq и numDocs вручную? Звучит как головная боль обслуживания.   -  person bajafresh4life    schedule 05.04.2010
comment
Сначала я вычисляю docFreq и numDocs для каждого сервера, а затем вычисляю глобальное значение, которое отправляю на все серверы, чтобы вычислить idf.   -  person David zsl    schedule 08.04.2010


Ответы (1)


Вы можете попробовать расширить IndexReader и переопределить IndexReader.docFreq() и IndexReader.numDocs(). В этом подтипе вы можете указать, что рассчитываете вручную. Я не уверен, что есть другие компоненты Lucene, зависящие от этих значений, так что вы можете действовать осторожно.

person bajafresh4life    schedule 05.04.2010
comment
Это кажется хорошей идеей. Однако имейте в виду, что Lucene вычисляет большую часть этого материала во время индексации, поэтому, если вы измените вычисления сходства только во время поиска, вы можете не получить желаемого эффекта. - person Yuval F; 06.04.2010
comment
Что ж, я решил эту проблему, изменив некоторые параметры в моей пользовательской реализации подобия (пара функций), проблем пока нет. И, как говорит Юваль Ф., с таким подходом я не получу желаемых результатов. Спасибо - person David zsl; 08.04.2010