使用 MongoDB 全文搜索进行排序

2023-12-30

我正在寻找一种在使用 mongodb 2.4 执行全文搜索时按字段值对结果进行排序的方法。

我的文本搜索命令如下所示:

db.books.runCommand( "text", { search: "science" } )

我想做的是这样的:

db.books.runCommand( "text", { search: "science", "sort": "rating" } )

我可以在文档中看到存在限制参数,但除了按相关性分数进行默认排序之外,没有其他参数可以对结果进行排序。

重新对结果进行排序可能效率很低。完成这件事有什么好方法吗?


遇到了同样的问题,通过使用“$meta”运算符而不是 runCommand 来解决问题(pymongo):

# create text index
db.collection.ensure_index([("textField", "text")], name = "Text_search_index")    
# query     
queryDict = { "$text": { "$search": ""science"}}    
# cursor
cursor = db.collection.find(queryDict, {'score': {'$meta': 'textScore'}, "_id":1}).sort([('score', {'$meta': 'textScore'})]).limit(limit_value)

貌似只有这个可用从2.6版本开始 https://github.com/mongodb/mongo-python-driver/blob/master/pymongo/cursor.py#L658至少在 pymongo 中

同样在 Mongo shell 中,这相当于:

db.collection.ensureIndex({"textField":"text"})    
queryDict = { "$text": { "$search": "science"}}    
db.collection.find(queryDict, {'score': {'$meta': 'textScore'}}).sort({'score': {'$met
a': 'textScore'}}).limit(100)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 MongoDB 全文搜索进行排序 的相关文章

  • 错误:grid.mongo.GridStore不是构造函数,使用mongoose、Grid-fs-stream和grid multer存储

    我收到以下提到的错误 基本配置如下 我已经将文件上传到服务器上 我想下载它们但出现这些错误 我向 api files delete fileId 调用了 POST 请求 它应该调用路由并将文件返回给浏览器 而不是使用网格相关模块获取错误 M
  • 在 MongoDB 和 Apache Solr 之间同步数据的简单方法

    我最近开始使用 MongoDB 和 Apache Solr 我使用 MongoDB 作为数据存储 并且希望 Apache Solr 为我的数据创建索引 以实现应用程序中的搜索功能 经过一些研究 我发现 基本上有两种方法可以在 MongoDB
  • 使用 Javascript/Node.js 在代码内执行 mongoimport

    node js javascript 中是否有任何库可供个人使用mongoimport在代码中 据我了解 mongoimport 有点像 exe 您必须先执行它 然后才能使用其文本输入环境 是否可以在我的代码中执行 mongoimport
  • MongoDB 中有内置的 JSON.parse 吗?

    是否有任何 Mongo 命令行 函 数可以将字符串转换为对象 例如JSON parse 或类似的东西 db sessions update set extra JSON parse stringData 我的解决方案 function my
  • Mongo 正则表达式用于“不匹配”或反向[重复]

    这个问题在这里已经有答案了 我的 mongo 文档都包含一个名为templateName 有一些包含该值的文档 a SystemDefaultTemplate b SystemDefaultTemplate c SystemDefaultT
  • MongoDb 中的全局自增字段

    有没有办法在集合中创建全局自动递增的值 Perforce 有一个变更列表的概念 它可以成为无状态更新的强大功能 我正在考虑相同类型的功能 例子 create gt DocA name foo gt changelist 1 create g
  • 错误:子进程失败,退出,错误号为 51 MongoDB

    重新启动 MongoDB 时出现此错误 我正在使用 Mongo 3 2 4 并在新机器上进行此设置 Starting mongod about to fork child process waiting until server is re
  • MongoDB req.body 问题

    我有一个非常简单的 Mongo 设置 如下所示 这非常适合从输入字段获取数据并保存数据 一切都在工作 我的问题 我将如何循环遍历前端的 jobs 变量并设置数据 以便它适用于我的模型 不知何故 我需要将其输入到输入中 以便我可以 req b
  • NodeJS 中的密码重置

    我已经设置使用 NodeJS Passport 更新用户的密码 我遵循了这个很棒的指南 http sahatyalkabov com how to implement password reset in nodejs http sahaty
  • mongodb/node.js 中单文档并发读写操作的问题

    编辑 6 15我尝试运行相同的代码 在调用之前添加延迟 doSafePush 再次收到 ConcurrencyDBError 时 即执行return when resolve wait delay 35 then function doSa
  • mongodb C# 异常无法从 BsonType Int32 反序列化字符串

    我是在 C 中使用 mongo db 的新手 但我正在尝试在 mongo db 中导入大型数据库 MyDb 由仅具有简单参数 Id Body Title Tags 的实体组成 这是 mongo 中实体的示例 Id someff asdsa
  • 使用 or 运算符进行 Morphia 查询

    我想知道如何使用 or 运算符编写 Morphia mongodb 查询我这样写了 mongodb 查询 效果很好 db Inv find or sug id 2 grp id 2 但是当我尝试在吗啡中编写此内容时 我感到很困惑 以下查询是
  • 有一种方法可以在 MongoDB 中强制引用完整性 [重复]

    这个问题在这里已经有答案了 当您搜索与 Mongo DB 相关的引用完整性时 标准响应是 MongoDB 不支持此 标准解释是 MongoDB 支持 refs 和 populate 但是没有什么可以阻止您将 ref 更改为无效值 对于许多具
  • Spring Data - MongoDB 索引 DBRef

    我正在使用 spring data mongodb 1 2 0 RELEASE 我有两个类 A 和 B 其中 B 引用了 A 并且用 DBRef 进行了注释 Class A Document collection a public clas
  • 下一个和上一个文档

    我正在制作一个图片库 每个图像都有一个 id 当我查看图像时 我想要接下来的 3 个图像和之前的 3 个图像 我怎样才能在 mongodb 查询中得到这个 我认为我可以使用 sort by id 因为这是不可排序的 也许使用mapReduc
  • 将位置数据存储在 Mongodb 文档中

    在我当前的项目中 我将位置数据以以下格式存储在 Mongodb 文档中 location loc lng 118 15592692 lat 34 03566804 geocode city East Los Angeles state CA
  • 按日/月分组,并取 mongo 中当天/月评分的平均值

    我在 mongodb 中有这些数据 rating 4 ceatedAt ISODate 2016 08 08T15 32 41 262 0000 rating 3 createdAt ISODate 2016 08 08T15 32 41
  • mongoid 中的嵌入文档与哈希数据类型

    我找不到任何讨论此问题的博客文章或文档 它们 嵌入式文档和哈希数据类型 非常相似 彼此相比有何好处或限制 考虑我的架构设计 class HistoryTracker include Mongoid Document include Mong
  • 在 cl-mongo 中实现 MongoDB SASL 身份验证

    我已经从 fons 分叉了 cl mongo common lisp MongoDB 库 存储库 因为它已经不再维护并且不支持 SCRAM SHA 1 登录过程 这是我的叉子 https github com mprelude cl mon
  • 为任何更新查询增加 Mongoose 文档版本的简单方法?

    我想开始利用 Mongooses 文档版本控制 v key 我在实际增加版本值时遇到了问题 然后我发现您必须添加this increment 执行查询时 有没有办法自动递增 目前 我只是将其添加到pre用于更新类型查询的中间件 module

随机推荐

  • JavaFX 模态窗口对 Swing 的所有权

    我有一个基于 Swing 构建的应用程序 并与 JavaFX 集成 Swing 的 JFrame 是顶层窗口 JFXPanel 包含不同的 JavaFX 控件 现在 我还集成了 JavaFX 的新警报 API 目前在显示时设置警报的所有权时
  • 使用 zsh 对于大型 /.ssh/config 文件自动完成速度较慢

    我目前有一个 ssh config 文件 其中约有 7000 行 我想看看是否有办法加快 zsh 中的自动完成功能 当我开始输入我想要 ssh 进入的服务器然后按TAB它需要大约 10 秒的时间来向我显示我可以选择的可能的主机 问题是完成
  • 推荐的最低 Android 应用 SDK

    我正在制作一个 Android 应用程序 想知道业界对支持旧版 Android 版本 如 GingerBread 和 FroYo 的想法是什么 像我这样的开发人员是否应该采取额外的步骤来使我的应用程序与这些旧版本兼容 或者它们是否已过时 我
  • 如何从主窗口调用异步方法?

    所以我写了一个快速的async方法将一些数据放入DataTable来自 Oracle 数据库 我该怎么称呼这个MainWindow 不阻塞UI线程 这async wait模型在那里并没有多大意义 async Task
  • Facebook JavaScript SDK:FB.ui 打开一个弹出窗口

    我试图在 facebook iframe 应用程序中使用以下代码显示 发布到您的墙 提要对话框 div div
  • 增加 parallel.foreach 范围之外的计数值

    如何增加parallel foreach 循环范围之外的整数值 同步对并行循环之外的对象的访问的最简单方法是什么 var count 0 Parallel ForEach collection item gt action item inc
  • 在 Xcode 中查找方法引用

    Xcode 中有没有办法找到调用方法或属性的所有位置 例如 在 Eclipse 中 您可以右键单击一个方法并选择查找参考资料 Xcode中有类似的东西吗 选择您感兴趣的方法 或将文本光标置于其中 通过编辑器左上角的图标打开 相关文件 菜单
  • 使用链表压栈操作失败

    我正在尝试使用单个链表创建堆栈 我的推送操作不会将数据插入链表 这是我到目前为止所尝试过的 typedef struct element int data struct element next node 推送方法 void push no
  • 在欧几里得空间中嵌入图

    我有一个总无向图 其中节点表示平面上点上的点 边是点之间的近似欧几里德距离 我想将此图 嵌入 到二维空间中 也就是说 我想将每个顶点转换为 x y 位置元组 以便对于任意两个两个顶点 v 和 w 边 v w 的权重接近 dist v w 例
  • 如何保持指针之间的 const 正确性?

    我试图对一个真正 const 的类进行 const 操作 它不会更改该类指向的数据 例如 class Node public int val class V public Node node what is the change that
  • 如何让 doSMP 与 plyr 完美配合?

    这段代码的工作原理 library plyr x lt data frame V c X Y X Y Z Z 1 5 ddply x V function df sum df Z parallel FALSE 虽然此代码失败 library
  • 两个坐标系之间的3D变换矩阵matlab

    我有一个坐标系A 示例 系统A的3个主向量方向为 e0 0 3898 0 0910 0 9164 e1 0 6392 0 7431 0 1981 e2 0 6629 0 6630 0 3478 并且 我有一个具有三个单位向量的笛卡尔坐标系
  • 带有段落的 Div,段落编号对齐并位于 div 外部(参见草图)

    我需要在 CSS 中执行此操作 红色框是一个 div 有几个段落 p 我想要将段落编号放在红色框的右侧 并且段落编号与相应的顶部对齐 p p 我可以只使用 CSS 来实现此布局吗 到目前为止 我已经尝试使用 javascript 来做到这一
  • Sublime Text 2如何设置环境变量

    我想设置环境变量 说的是https docs sublimetext io guide extensibility snippets html https docs sublimetext io guide extensibility sn
  • 无法使用 meld 进行 svn diff

    我想使用 meld 来查看修订版之间的差异 我安装了meld 然后在项目目录下执行 svn diff r 2165 2182 diff cmd meld 但它会引发以下错误 Index app models college friends
  • Python 的配置文件模块: :1(?)

    我正在使用Python v2 4 profile分析模块numpy脚本 以下条目似乎占据了大部分执行时间 ncalls tottime percall cumtime percall filename lineno function 256
  • 使用replaceData函数替换R格式数据表中的数据

    我需要顺利替换 格式表 数据表中的数据 而重新加载时页面不会闪烁 按照 yihui 的示例 https github com rstudio DT issues 168 https github com rstudio DT issues
  • PHP 流媒体 MP3

    我和提问者的情况很相似 我可以使用 PHP 提供 MP3 文件吗 https stackoverflow com questions 1516661 can i serve mp3 files with php基本上我试图保护 mp3 文件
  • 如何在 ASP.NET 5 中启用静态文件的浏览器链接

    有没有办法让浏览器链接在 ASP NET 5 下处理静态文件 我的 Startup cs 目前有以下内容 public void Configure IApplicationBuilder app app UseBrowserLink ap
  • 使用 MongoDB 全文搜索进行排序

    我正在寻找一种在使用 mongodb 2 4 执行全文搜索时按字段值对结果进行排序的方法 我的文本搜索命令如下所示 db books runCommand text search science 我想做的是这样的 db books runC