首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从mongodb data C#中查找消除空格的弹性查询

从mongodb data C#中查找消除空格的弹性查询
EN

Stack Overflow用户
提问于 2018-01-08 02:36:53
回答 1查看 151关注 0票数 0

我想知道是否有一种方法可以搜索不包括空格的MongoDB数据。我的MongoDB有如下数据-

代码语言:javascript
复制
"Element":"Ele1"
"Element":"Ele2"
"Element":"Ele 3"

我的搜索查询包含不含空格的字符串,即"Ele1,Ele2,Ele3“。因此,当我向搜索查询传递"Ele3“时,它不会返回任何结果。我正在使用ElasticSearch.net nuget。我的代码是这样的-

代码语言:javascript
复制
var elResp = await data.MultiSearchAsync(m => m
                    .Query(q => q
                    .Nested(n => n
                    .Path("Element")
                    .Query(qq => qq
                        .Bool(b => b
                            .Must(m1 => m1
                            .Term("Element.keyword", "Ele1")))))))

有没有什么我可以做的,或者我必须在MongoDb中创建一个额外的字段来保存元素值而不留空格。这样我就可以从中执行检查了。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-08 05:58:02

您可以通过创建不带空格的额外字段来获得最佳性能,但是在MongoDB中,您可以只使用$regex来匹配带空格和不带空格的字段。

代码语言:javascript
复制
db.collection.find({ "Element": { $regex: /Ele\s*3/ } })

其中,\s是一个空格,而*表示零个或多个匹配项。您预测的空间越多,您就越应该考虑添加一个不带任何空格的字段(出于性能考虑),但是/E\s*l\s*e\s*3/仍然适用于这种情况。

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

https://stackoverflow.com/questions/48140330

复制
相关文章

相似问题

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