В настоящее время я использую NHibernate.Search в своем приложении, которое работает нормально, однако теперь мне нужно перейти на Solr, потому что мне нужно сбалансировать нагрузку на мое приложение.
У меня есть базовые настройки и работа, но результаты получаются не так, как ожидалось ... вот что я сделал до сих пор:
1) Запуск службы java solr в командной строке. (Я могу получить доступ http://localhost:8983/solr/admin/)
2) Инициализировал Solr с помощью моего Nhibernate Cfg, как описано в вики SolrNet
3) Я добавил некоторые атрибуты к одному из моих объектов (Id, Title, Description)
4) Мой schema.xml был изменен, чтобы соответствовать моим проиндексированным полям (id, title, description)
5) Я добавил пару объектов в индекс (я вижу их в консоли администратора)
6) Я использую следующий код для возврата результатов поиска (согласно вики)
NHibernate.SolrNet.CfgHelper cfgHelper = new CfgHelper();
ICollection<T> entities;
ISessionFactory sessionFactory = Session.SessionFactory;
using (var session = cfgHelper.OpenSession(sessionFactory)) {
entities = session.CreateSolrQuery(term).SetMaxResults(10).List<T>();
}
return entities.ToList();
Когда я запускаю это, он находит правильные результаты, однако он не увлажняет всю сущность, только поля, которые были проиндексированы ... я что-то здесь упустил ... NHibernate.Search заставил это волшебным образом произойти для меня
Пол