usando hit marcador em lucene

Tenho duas perguntas sobre o marcador de ocorrência fornecido com o apache lucene:

Vejoesta função você poderia explicar o uso do parâmetro de fluxo de token.

Eu tenho vários documentos lucene grandes contendo muitos campos e cada campo tem algumas strings nele. Agora encontrei o documento mais relevante para uma consulta específica. Agora, este documento foi encontrado porque várias palavras na consulta podem ter coincidido com as palavras no documento. Quero descobrir quais palavras na consulta causaram isso. Então, para isso, pretendo usar o Lucene Hit Highlighter. Exemplo: se a consulta for "skin doctor delhi" e o documento intitulado "dermatologist" contiver as palavras "skin" e "doctor", após o destaque da ocorrência, será possível separar "skin" e "doctor" da consulta. Estou tentando escrever o código para isso há várias semanas. Não é possível obter o que eu quero. Você poderia me ajudar por favor?

Desde já, obrigado.

Atualizar:

Abordagem atual: eu crio uma consulta contendo todas as palavras no documento.

Field[] field = doc.getFields("description");
String desc = "";
for (int j = 0; j < field.length; ++j) {
     desc += field[j].stringValue() + " ";
}

Query q = qp.parse(desc);
QueryScorer scorer = new QueryScorer(q, reader, "description");
Highlighter highlighter = new Highlighter(scorer);

String fragment = highlighter.getBestFragment(analyzer, "description", text);

Funciona para documentos pequenos, mas não para documentos grandes. O seguinte rastreamento de pilha é obtido.

    org.apache.lucene.search.BooleanQuery$TooManyClauses: maxClauseCount is set to 1024
    at org.apache.lucene.search.BooleanQuery.add(BooleanQuery.java:152)
    at org.apache.lucene.queryParser.QueryParser.getBooleanQuery(QueryParser.java:891)
    at org.apache.lucene.queryParser.QueryParser.getBooleanQuery(QueryParser.java:866)
    at org.apache.lucene.queryParser.QueryParser.Query(QueryParser.java:1213)
    at org.apache.lucene.queryParser.QueryParser.TopLevelQuery(QueryParser.java:1167)
    at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:182)

É óbvio que a abordagem não é razoável para documentos grandes. O que deve ser feito para corrigir isso?

BTW, estou usando a correspondência do FuzzyQuery.

questionAnswers(1)

yourAnswerToTheQuestion