public void MultipleEntityPerIndex() { IFullTextSession s = Search.CreateFullTextSession(OpenSession()); ITransaction tx = s.BeginTransaction(); Clock clock = new Clock(1, "Seiko"); s.Save(clock); 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); AlternateBook alternateBook = new AlternateBook(1, "La chute de la petite reine a travers les yeux de Festina"); s.Save(alternateBook); 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"); IQuery hibQuery = s.CreateFullTextQuery(query, typeof(Clock), typeof(Book)); IList result = hibQuery.List(); Assert.AreEqual(1, result.Count, "Query with explicit class filter"); query = parser.Parse("Summary:Festina"); hibQuery = s.CreateFullTextQuery(query, typeof(Clock), typeof(Book)); IEnumerator it = hibQuery.Enumerable().GetEnumerator(); Assert.IsTrue(it.MoveNext()); Assert.IsNotNull(it.Current); Assert.IsFalse(it.MoveNext()); query = parser.Parse("Summary:Festina OR Brand:seiko"); hibQuery = s.CreateFullTextQuery(query, typeof(Clock), typeof(Book)); hibQuery.SetMaxResults(2); result = hibQuery.List(); Assert.AreEqual(2, result.Count, "Query with explicit class filter and limit"); query = parser.Parse("Summary:Festina"); hibQuery = s.CreateFullTextQuery(query); result = hibQuery.List(); Assert.AreEqual(2, result.Count, "Query with no class filter"); foreach (Object element in result) { Assert.IsTrue(NHibernateUtil.IsInitialized(element)); s.Delete(element); } s.Delete("from System.Object"); tx.Commit(); s.Close(); }
public void MultipleEntityPerIndex() { IFullTextSession s = Search.CreateFullTextSession(OpenSession()); ITransaction tx = s.BeginTransaction(); Clock clock = new Clock(1, "Seiko"); s.Save(clock); 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); AlternateBook alternateBook = new AlternateBook(1, "La chute de la petite reine a travers les yeux de Festina"); s.Save(alternateBook); tx.Commit(); s.Clear(); tx = s.BeginTransaction(); QueryParser parser = new QueryParser("Title", new StopAnalyzer()); Lucene.Net.Search.Query query = parser.Parse("Summary:Festina"); IQuery hibQuery = s.CreateFullTextQuery(query, typeof(Clock), typeof(Book)); IList result = hibQuery.List(); Assert.AreEqual(1, result.Count, "Query with explicit class filter"); query = parser.Parse("Summary:Festina"); hibQuery = s.CreateFullTextQuery(query, typeof(Clock), typeof(Book)); IEnumerator it = hibQuery.Enumerable().GetEnumerator(); Assert.IsTrue(it.MoveNext()); Assert.IsNotNull(it.Current); Assert.IsFalse(it.MoveNext()); query = parser.Parse("Summary:Festina OR Brand:seiko"); hibQuery = s.CreateFullTextQuery(query, typeof(Clock), typeof(Book)); hibQuery.SetMaxResults(2); result = hibQuery.List(); Assert.AreEqual(2, result.Count, "Query with explicit class filter and limit"); query = parser.Parse("Summary:Festina"); hibQuery = s.CreateFullTextQuery(query); result = hibQuery.List(); Assert.AreEqual(2, result.Count, "Query with no class filter"); foreach (Object element in result) { Assert.IsTrue(NHibernateUtil.IsInitialized(element)); s.Delete(element); } s.Delete("from System.Object"); tx.Commit(); s.Close(); }