首页 > 解决方案 > 仅当文档包含具有 lucene.net 中的值的字段时才过滤掉文档

问题描述

在我的索引中,我的文档有过期日期,它们不应该在某个日期之后显示。并非所有文档都有此字段,如果没有此字段,则它们没有过期日期并且可以始终显示。

所以我试图应用范围过滤器来过滤掉具有“display_to”字段的文档,但如果文档中不存在该字段,我希望它在查询中返回

这是到目前为止我得到的过滤代码,但它没有做我想做的事情。

BooleanFilter filter = new BooleanFilter();
DateTime date = DateTime.Now;
filter.Add(new TermFilter(new Lucene.Net.Index.Term("modelId", modelId.ToString("N"))), Lucene.Net.Search.Occur.MUST);    
filter.Add(NumericRangeFilter.NewInt64Range("display_to", date.ToFileTimeUtc(), null , true, true), Occur.SHOULD);

标签: c#lucenelucene.net

解决方案


推荐阅读