首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nest elasticsearch中的空字段过滤器

nest elasticsearch中的空字段过滤器
EN

Stack Overflow用户
提问于 2015-07-01 15:43:14
回答 1查看 1.8K关注 0票数 3

我正在尝试在NEST中创建一个查询,如下所示:

get * where CityName!='‘and StreetName!='’

使用现有的和缺少的筛选器没有任何帮助,因为字段不为空。我还尝试使用带有通配符(*)的queryString,但我在结果中返回了所有文档。我还尝试了脚本过滤器,如下所示:

代码语言:javascript
复制
qq.Filtered(ft => ft.Filter(f => f.Script(s => s.Script("doc['cityName'].value.length() > 0"))));

也不能工作。字段使用标准标记器和ICU折叠进行索引。有什么解决方案吗?

更新!

我通过使用Regexp过滤器设法做到了这一点。所以它是这样的:

代码语言:javascript
复制
 QueryContainer notNullQuery = null;

                notNullQuery &= qq.Filtered(ft => ft.Filter(f => f.Regexp(r => r.OnField(ff => ff.StdCityName).Value("[a-z0-9]+[\\s]?"))));
                notNullQuery &= qq.Filtered(ft => ft.Filter(f => f.Regexp(r => r.OnField(ff => ff.StdStreetCode).Value("[0-9]+"))));
                notNullQuery &= qq.Filtered(ft => ft.Filter(f => f.Regexp(r => r.OnField(ff => ff.StdStreetPostCode).Value("[a-z0-9]+[\\s]?"))));
                notNullQuery &= qq.Filtered(ft => ft.Filter(f => f.Regexp(r => r.OnField(ff => ff.LastName1).Value("[a-z0-9]+[\\s]?"))));
                notNullQuery &= qq.Filtered(ft => ft.Filter(f => f.Regexp(r => r.OnField(ff => ff.FirstName1).Value("[a-z0-9]+[\\s]?"))));
                notNullQuery &= qq.Filtered(ft => ft.Filter(f => f.Regexp(r => r.OnField(ff => ff.SourceDisplayPhone).Value("[0-9]+"))));

                return notNullQuery;

稍后的更新:对于NEST 5.x,将字段作为关键字进行索引,然后对术语进行查询搜索。不要忘了使用Verbatim(),否则查询将不会被发送到服务器。

代码语言:javascript
复制
qq.Bool(b => b.MustNot(mn => mn.Term(t => t.Field(f => f.Email).Value("").Verbatim())));
EN

回答 1

Stack Overflow用户

发布于 2015-07-02 15:34:37

默认情况下,NEST使用一种称为无条件查询的特性来重写查询,而无需编写大量if语句来构建查询/过滤器。请参阅http://nest.azurewebsites.net/nest/writing-queries.html

如果你想关闭它,你可以在图中的任何地方调用.Verbatim(bool verbatim = true),这个标志会传递给孩子,并会导致他们被写到结果查询/过滤器中,即使他们是无条件的。

类似地,当查询是无条件的,但永远不允许这样做时,设置.Strict(bool strict = true)将抛出异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31155371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档