MongoDB/mongoose 'like' 语句中是否有诸如 SQL 语言之类的语句?使用的唯一原因是全文搜索的实现。
问问题
1509 次
5 回答
7
MongoDB 支持正则表达式。
于 2012-05-29T05:33:11.777 回答
2
我们可以使用 mongodb 的 java API 实现正则表达式的两种方法:
表达式 1: 我需要从文档字段中的那个字符串开始搜索
String strpattern ="your regular expression";
Pattern p = Pattern.compile(strpattern);
BasicDBObject obj = new BasicDBObject()
obj.put("key",p);
示例:(考虑我想搜索名称以“a”开头的任何地方)
String strpattern ="^a";
Pattern p = Pattern.compile(strpattern);
BasicDBObject obj = new BasicDBObject()
obj.put("name",p);
表达式 2:
我需要在一个字段中搜索多个单词,您可以使用如下
String pattern = "\\b(one|how many)\\b";
BasicDBObject obj = new BasicDBObject();
//if you want to check case sensitive
obj.put("message", Pattern.compile(pattern,Pattern.CASE_INSENSITIVE));
于 2012-08-24T11:07:50.007 回答
0
考虑在应用程序级别制作一个脚本,将您的数据转换为令牌(单词)。然后将令牌视为标签,在这些令牌上建立索引,然后像搜索标签一样搜索令牌。这就像创建一个倒排索引。
要获得更好的文本搜索功能,请考虑使用 Lucene 而不是 MongoDB。
于 2012-06-28T21:26:13.863 回答
0
使用正则表达式:/^textforesarc$/i。只是不要忘记与性能说再见:)。使用 like 模拟正则表达式搜索不会命中自定义索引。目前仅支持以开头。
于 2012-07-12T23:35:54.570 回答