错误:未启用文本搜索:- 在 mongodb
Posted
技术标签:
【中文标题】错误:未启用文本搜索:- 在 mongodb【英文标题】:Error: text search not enabled:- in mongodb 【发布时间】:2013-11-22 13:48:58 【问题描述】:我收到以下错误:-
[Error: text search not enabled]
我正在运行以下函数,它本质上是一个 mongoose-mongodb 操作。
var textSearch = require('mongoose-text-search');
exports.dbTextSearch = function ()
console.log('dbTextSearch');
var gameSchema = mongoose.Schema(
name: String
, tags: [String]
, likes: Number
, created: Date
);
gameSchema.plugin(textSearch);
gameSchema.index( tags: 'text' );
var Game = mongoose.model('Game', gameSchema);
Game.create( name: 'Super Mario 64', tags: ['nintendo', 'mario', '3d'] , function (err)
Game.textSearch('3d', function (err, output)
if (err) return console.log(err); // this outputs the error.
var inspect = require('util').inspect;
console.log(inspect(output, depth: null ));
);
);
我正在尝试实现mongoose-text-search 插件
【问题讨论】:
Installing plugins for mongoose - getting error的可能重复 如果你搜索那个错误字符串,很容易找到最可能的原因。 【参考方案1】:MongoDB 文本搜索仍然是一个实验性功能。这就是默认情况下禁用它和must be enabled manually 的原因。您可以通过使用命令行参数 --setParameter textSearchEnabled=true
启动 mongod 或将行 textSearchEnabled=true
添加到文件 mongodb.conf 来实现。
请注意,作为一项实验性功能,文本搜索目前不应在生产环境中使用。
更新
截至2.6
版本的 mongoDB 文本搜索功能具有生产质量并自动启用。
【讨论】:
【参考方案2】:在 MongoDB 2.4 - 要启用实验性文本搜索,请使用
setParameter=textSearchEnabled=true
以下行在 mongodb.conf 文件中对我不起作用。
textSearchEnabled=true
EDIT 在 MongoDB 2.6 + 中默认启用。你只需要设置你的文本索引。
【讨论】:
我将 MongoDB 升级到 2.6,但仍然出现“MongoError:未启用文本搜索”。有什么方法可以检查 textSearchEnabled 是真还是假? textSearchEnabled is deprecated since 2.6。也许这就是它显示为未启用的原因。不知道你是怎么检查的。 TextSearch 的工作方式有所不同(从 2.6 开始),$text
运算符返回多个文档,而不是 text
在 2.4 中仅返回一个文档(文档)。另外,请在 mongoshell 中检查您的 version()
。【参考方案3】:
你必须在启动 mongo 时指定这个启动参数(在上面的答案中提到)。因此,如果您手动启动,则使用:
mongod --setParameter textSearchEnabled=true
否则,如果 mongo 被 deamonized,则将其放入 deamon 脚本中。像这样的:
start()
echo -n $"Starting mongod: "
daemon --user "$MONGO_USER" $NUMACTL $mongod --setParameter textSearchEnabled=true $OPTIONS
然后你创建文本索引并检查它是否存在:
db.mycoll.createIndex( someFieldName: "text" );
db.mycoll.getIndexes()
【讨论】:
以上是关于错误:未启用文本搜索:- 在 mongodb的主要内容,如果未能解决你的问题,请参考以下文章
ORA-20000:Oracle 文本错误:DRG-10599:列未编入索引
如果已启用,如何修复“当前未启用对实验语法 'classProperties' 的支持”错误?
字段为空时为 UISearchBar 启用“搜索”按钮? (IOS 7)