2012-03-19 5 views
5

Quiero generar el puntaje de los documentos. El código que escribo para esto es que:Lucene: cómo obtener el puntaje de un documento

IndexReader reader = IndexReader.open(FSDirectory.open(indexDir)); 
IndexSearcher searcher = new IndexSearcher(reader); 
Analyzer analyzer = new IKAnalyzer(); 
QueryParser parser = new QueryParser(Version.LUCENE_31, "title", 
      analyzer); 
Query q = null; 
q = parser.parse("MacOS"); 
TopDocs docs = searcher.search(q, 10); 
ScoreDoc[] hits = docs.scoreDocs; 
for(int i=0;i<hits.length;++i){ 
    System.out.println(hits[i].score); 
} 

pero la salida es NaN. Quiero saber cómo obtener el puntaje del documento.

+0

Esta es la forma correcta para obtener el puntaje de un documento. ¿Cómo se ve tu consulta? – jpountz

+0

@jpountz He pegado todo el código, ayúdenme a verificarlo. Gracias – remy

+0

¿Se puede pegar el resultado de una llamada a IndexSearcher.explain? – jpountz

Respuesta

4
 IndexReader reader = IndexReader.open(FSDirectory.open(indexDir)); 
     IndexSearcher searcher = new IndexSearcher(reader); 
     Analyzer analyzer = new IKAnalyzer(); 
     QueryParser parser = new QueryParser(Version.LUCENE_31, "title", analyzer); 
     Query q = null; 
     q = parser.parse("MacOS"); 
     TopDocs docs = searcher.search(q, 10); 
     ScoreDoc[] filterScoreDosArray = docs.topDocs().scoreDocs; 
     for (int i = 0; i < filterScoreDosArray.length; ++i) { 
      int docId = filterScoreDosArray[i].doc; 
      Document d = is.doc(docId); 
      System.out.println((i + 1) + ". " + d.get("docno")+" Score: "+ filterScoreDosArray[i].score); 
     } 

probar esto.

0

Para imprimir la puntuación debería establecer defaultFieldSortScoring (verdadera, verdadera)

11

adicional para daulets answere tiene que habilitar el marcador en el IndexSearcher:

... 
searcher.setDefaultFieldSortScoring(true, true); 
... 

creo que eso es lo que quería decir Remy, pero eso forma que debería ser más claro :)

+1

gracias muy útil – Steve

+0

No está disponible en publicaciones recientes –

Cuestiones relacionadas