gpt4 book ai didi

mongodb - 使用 MongoDB 全文搜索进行排序

转载 作者:IT老高 更新时间:2023-10-28 13:16:43 25 4
gpt4 key购买 nike

我正在寻找一种在使用 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)

似乎只有 from 2.6 version 可用至少在 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)

关于mongodb - 使用 MongoDB 全文搜索进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16312538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com