当前位置: 首页 > 面试题库 >

如何使用Java驱动程序在MongoDB中执行全文搜索命令?

方和宜
2023-03-14
问题内容

Mongo和Java专家。我们的团队决定使用最近在MongoDB中引入的全文本搜索API。但是,我们发现使用Java
MongoDB驱动程序执行命令有些困难。

这是我正在使用的代码:

public BasicDBObject find(String search) {
    BasicDBObject searchCommand = new BasicDBObject();

        searchCommand.put("text", new BasicDBObject().append("search", search));

        CommandResult commandResult = db.command(searchCommand);
}

这是我打印时得到的

 System.out.println(commandResult)

{ "serverUsed" : "/127.0.0.1:27017" , "errmsg" : "exception: wrong type for field (text) 3 != 2" , "code" : 13111 , "ok" : 0.0 }

问题答案:

摘自Google网上论坛(https://groups.google.com/forum/?fromgroups#!topic/mongodb-
user/7jWUbunUcFQ
)上的帖子:

    final DBObject textSearchCommand = new BasicDBObject();
    textSearchCommand.put("text", collectionName);
    textSearchCommand.put("search", textToSearchFor);
    final CommandResult commandResult = db.command(textSearchCommand);

确切显示如何格式化命令。



 类似资料:
  • 我对蒙哥有点陌生。我想在一个字段上查询多个值。在SQL中,我想要这样的内容: 但这似乎只返回“bar”文档。 请帮忙

  • 问题内容: 我正在尝试通过搜索“ _id”键在MongoDB中查找文档。我的文件看起来像这样- 我正在尝试将此文档搜索为- 但我得到以下错误- BasicDBObject的append方法支持(字符串键,值),如果我将“ _id”作为String传递给此方法,则不会匹配任何文档。 所以我的问题是如何传递“ _id”? 问题答案: 通过使用as作为查询来解决

  • UTCDateTime的var_dump显示有效值: 对象(MongoDB\bson\utcdatetime)#477(1){[“毫秒”]=> 字符串(10)“1515954053”} 预期返回的文档示例: UPDATE:删除发送到UTCDateTime对象的变量,如下所示: 作品(如上面所示,我在将来添加了一个记录)。问题是当我发送变量来指定我需要的时间戳时。

  • 请帮我找到一个合适的解决办法 收集被存储的用户详细信息app_users 用户预订是存储预订的集合 我正在使用的查找(左连接)查询是 我想从用户集合中选择具有相应用户详细信息的预订,但返回为空,因为mongodb正在将字符串与objectId进行比较,所以是否有方法执行此任务?

  • 问题内容: 几天以来,我一直在Google上进行搜索,并且尝试了很多操作,但是仍然无法对用户集合执行良好的全文本搜索。 我尝试了ElasticSearch,但几乎无法查询和分页… 我尝试了许多用于Mongoose的插件,例如ElMongo,mongoose-full- text,Mongoosastic等。每个人的文档都非常糟糕,我不知道如何执行良好的全文本搜索。 因此,我的收藏是普通收藏: 我在

  • 作为mongodb世界的新成员,当我试图在一个集合中复制一个mongo文档时遇到了麻烦。复制的意思是,我想把旧文档复制到一个新文档中,这个新文档有一个new _id字段,并改变几个字段的值。 mongodb java驱动程序是我的操作环境。 有人已经这样做了吗?