private static void LuceneCriteria() { using (IFullTextSession s = Search.CreateFullTextSession(sf.OpenSession())) { IList result = s.CreateCriteria(typeof(Book)) .Add(SearchRestrictions.Query("Summary:NHibernate or Name:NHibernate")) .List(); Debug.Assert(result.Count == 2); } }
public void UsingCriteriaApi() { IFullTextSession s = Search.CreateFullTextSession(OpenSession()); ITransaction tx = s.BeginTransaction(); Clock clock = new Clock(1, "Seiko"); s.Save(clock); tx.Commit(); IList list = s.CreateFullTextQuery <Clock>("Brand:seiko") .SetCriteriaQuery(s.CreateCriteria(typeof(Clock)).Add(Restrictions.IdEq(1))) .List(); Assert.AreEqual(1, list.Count, "should get result back from query"); s.Delete(clock); s.Flush(); s.Close(); }
public void Criteria() { IFullTextSession s = Search.CreateFullTextSession(OpenSession()); ITransaction tx = s.BeginTransaction(); Book book = new Book(1, "La chute de la petite reine a travers les yeux de Festina", "La chute de la petite reine a travers les yeux de Festina, blahblah"); s.Save(book); Author emmanuel = new Author(); emmanuel.Name = "Emmanuel"; s.Save(emmanuel); book.Authors.Add(emmanuel); tx.Commit(); s.Clear(); tx = s.BeginTransaction(); QueryParser parser = new QueryParser(Environment.LuceneVersion, "Title", new StopAnalyzer(Environment.LuceneVersion)); Lucene.Net.Search.Query query = parser.Parse("Summary:Festina"); IFullTextQuery hibQuery = s.CreateFullTextQuery(query, typeof(Book)); IList result = hibQuery.List(); Assert.NotNull(result); Assert.AreEqual(1, result.Count, "Query with no explicit criteria"); book = (Book)result[0]; //Assert.IsFalse(NHibernate.IsInitialized(book.Authors), "Association should not be initialized"); result = s.CreateFullTextQuery(query).SetCriteriaQuery(s.CreateCriteria(typeof(Book)).SetFetchMode("Authors", FetchMode.Join)).List(); Assert.NotNull(result); Assert.AreEqual(1, result.Count, "Query with no explicit criteria"); book = (Book)result[0]; //Assert.IsTrue(NHibernate.IsInitialized(book.Authors), "Association should be initialized"); Assert.AreEqual(1, book.Authors.Count); // cleanup s.Delete("from System.Object"); tx.Commit(); s.Close(); }
public void GenerateIndexes() { ISessionFactory applicationFactory = NhibernateSessionFactory.GetSessionFactory(NhibernateSessionFactory.SessionFactoryConfiguration.Application); using (ISession session = applicationFactory.OpenSession()) using (IFullTextSession fullTextSession = Search.CreateFullTextSession(session)) { using (ITransaction transaction = fullTextSession.BeginTransaction()) { fullTextSession.PurgeAll(typeof(TaskMainDAO)); transaction.Commit(); } using (ITransaction transaction = fullTextSession.BeginTransaction()) { foreach (object entity in fullTextSession.CreateCriteria(typeof(TaskMainDAO)).List()) { fullTextSession.Index(entity); } transaction.Commit(); } } }