首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QueryContainerDescriptor弹性搜索-获取包含描述的所有文档不等于String.Empty

QueryContainerDescriptor弹性搜索-获取包含描述的所有文档不等于String.Empty
EN

Stack Overflow用户
提问于 2020-06-21 12:05:32
回答 1查看 315关注 0票数 1

我使用QueryContainerDescriptor来填充过滤器。我想得到它们描述不等于String.Empty的所有文档。

我试着做:

代码语言:javascript
复制
        public static QueryContainerDescriptor<T> FilterSummaryEmpty<T>(this QueryContainerDescriptor<T> qd)
where T : ElasticEntityDoc
        {           
            qd.Bool(b=> 
                        b.MustNot(mn =>                        
                            mn.Term(f => f.Description, string.Empty)
                        ));

            return qd;
        }

但这不管用。

此外,我试图使用regex,但没有成功。我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-21 12:31:53

如果您使用的是standard analyser,检查空将无法工作,因为它将不会被分析,因为它是空的。因此,索引中没有empty这样的内容可供匹配。

要检查这一点,您需要在映射中将该字段复制为not_analyzed参考文献,这样您就可以在复制字段和description字段上的其他查询上检查空。

还有一种方法可以证明这一点。您可以使用存在

如果JSON值为null或[],则字段被视为不存在,但这些值将指示字段确实存在: 空字符串,如"“或"-”数组,其中包含null和另一个值,例如null,"foo“--一个在字段映射中定义的自定义空值。

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

https://stackoverflow.com/questions/62498267

复制
相关文章

相似问题

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