Можно попробовать поиграть с Analyzer # getPositionIncrementGap и IndexReader # getTermVectors , чтобы вычислить, какой field1
экземпляр содержит Term
.
Например,если у вас менее 10 field1
экземпляров, и если каждый экземпляр содержит менее 100 терминов, то использование positionIncrementGap
из 10 * 100 = 1000 поможет вам вычислить, какое поле содержало Term
, используя position % 1000
.
Обратите внимание, что вы должны включить векторов терминов (с позициями) во время индексации, чтобы сделать это.
Остерегайтесь, что это хак, хотя я мог бы использовать егодля тестирования, я бы, вероятно, не делал этого в любом серьезном программном обеспечении.