2015-03-24 4 views
0

Мы пытаемся найти оценки, назначенные lucene, на результаты запроса neo4j.neo4j оценка lucene всегда 0.0

IndexManager index = graphDb.index(); 
Index<Node> fulltextMovies = index.forNodes("Restaurant"); 
QueryContext query = new QueryContext("name:" + term + "*"); 
TermQuery t = new TermQuery(new Term("name", term + "m*")); 

IndexHits<Node> hits = fulltextMovies.query(t); 
System.out.println(hits.currentScore()); 

Последняя строка кода всегда печатает 0.0

ли мы должны определить пользовательские оценки, чтобы получить эту работу? По моему пониманию, lucene присваивает оценку каждому результату поиска. Если так,. Я должен получить оценку lucene против моих результатов запроса. Это возможно?

ответ

0

Вы можете использовать currentScore() только во время использования итератора из запроса индекса. В качестве примера:

try (IndexHits<Node> hits = index.query(t)) { 
    for (Node node : hits) { 
     System.out.println(node + " " + hits.currentScore()); 
    } 
} 
+0

Спасибо, Стефан. Я попробую это решение и обновит этот поток. :-) –

+0

Я пробовал шаги, которые вы упомянули, но результат такой же. Сейчас я получаю оценку 0.0 для всех моих элементов поиска. –

Смежные вопросы