如何基于NHibernate Search中的一些属性禁用某些实体?

时间:2010-07-12 20:59:53

标签: lucene.net nhibernate-search

我仍然是NHibernate.Search的新手。所以如果这是一个愚蠢的问题,请耐心等待:)

说,我已经索引了一些BlogPost类型的实体,它们有一个名为IsDeleted的属性。如果IsDeleted设置为true,我不希望我的查询显示这个特定的博客帖子。

这可能吗?如果是 - 如何? :P

提前致谢 - cwap

2 个答案:

答案 0 :(得分:0)

// Using NHibernate.Linq:
var result = Session.Linq<BlogPost>().Where(post => !post.IsDeleted).ToList();

// Using HQL:
var hql = "from BlogPost bp where bp.IsDeleted == false";
var result = Session.CreateQuery(hql).List<BlogPost>();

// Using Criteria API:    
var result = s.CreateCriteria(typeof(BlogPost))
              .Add(Restrictions.Eq("IsDeleted", false));
              .List<BlogPost>();

答案 1 :(得分:0)

自己找到解决方案。我将[Field(Index.Tokenized,Store = Store.Yes)] - 属性添加到IsDeleted属性,并将此子句添加到任何查询入站:

string q = "(" + userQuery + ") AND IsDeleted:False";

我知道这很简单:)