NHibernate.Search Прогнозы - PullRequest
       8

NHibernate.Search Прогнозы

2 голосов
/ 05 марта 2010

Я пытаюсь использовать NHibernate.Search, чтобы получить оценку Lucene.NET через прогнозы.

Мой объект домена реализует интерфейс IScorableEntity

public interface IScorableEntity
{
    float Score { get; set; }
}

...

IFullTextSession session = Search.CreateFullTextSession(database.Session);
IFullTextQuery textQuery = session.CreateFullTextQuery(query, typeof(Book));
textQuery.SetProjection(ProjectionConstants.SCORE);
var books = textQuery.List<Book>();

Без прогноза все работает, но с этим есть исключение:

InvalidCastException: хотя бы один элемент в исходном массиве не может быть приведен к массиву назначения тип.

1 Ответ

1 голос
/ 05 марта 2010

Нашел себя, мне нужно использовать 2 прогноза для этого

textQuery.SetProjection(ProjectionConstants.SCORE, ProjectionConstants.THIS);

var list = textQuery.List();

var books = new List<Book>();
foreach(object[] o in list)
{
    var book= o[1] as Book;
    if (book!= null)
    {
        book.Score = (float)o[0];
    }
    books.Add(book);
}

return books;
...