AnsweredAssumed Answered

Ordenación en la búsqueda

Question asked by spilby on Dec 2, 2010
Latest reply on Dec 21, 2010 by cybermakoki
Buenas,

estoy intentando ordenar los resultados que he obtenido tras una búsqueda con Lucene.

Query query = new Query(Constants.QUERY_LANG_LUCENE, sQuery);
QueryResult queryResult = repositoryService.query(store, query, false);
     
// Recogemos los resultados de la consulta
ResultSet results = queryResult.getResultSet();
rows = results.getRows();

Cada row tiene un score asociado que se puede recuperar haciendo un row.getScore().

El problema es que la puntuación de ese score, o no la entiendo, o va como quiere. (Prefiero pensar que es lo primero)

Tengo 4 ficheros subidos en alfresco, cada uno con la palabra "hit" repetida varias veces. Lo lógico es que a más coincidencias (en la query busco la palabra "hit") mayor score, pero os paso el score que me devuelve para cada fichero:

- Prueba 1.txt (una sola palabra "hit") -> score = 1.0

- Prueba 2.txt (hit hit) -> score = 0.9847

- Prueba 3.txt (hit hit hit) -> score = 0.9824

- Prueba 4.txt (hit repetida 10 veces) -> score = 0.9984

No le veo ningún sentido. El score mayor es el que sólo tiene una vez la palabra "hit"? Y el menor es el que la tiene 3 veces? No entiendo nada…

¿Hay que especificar de alguna manera en la query la asignación que debe darle Alfresco al score? ¿Habéis implementado alguno algo parecido? Para saber cómo ordenar los resultados de mayor a menor número de coincidencias con la palabra a buscar.

Merci!

Outcomes