Error: text search not enabled:- in mongodb

荒凉一梦 提交于 2020-01-02 03:45:32

问题


I get the following error :-

[Error: text search not enabled]

I am running the folliowing function which is essentially a mongoose-mongodb operation.

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 }));
        });
    });
}

I am trying to implement the mongoose-text-search plugin


回答1:


MongoDB Text search is still an experimental feature. That's why it is disabled by default and must be enabled manually. You can do so by either starting mongod with the command line parameter --setParameter textSearchEnabled=true or adding the line textSearchEnabled=true to the file mongodb.conf.

Please note that as an experimental feature, text search should not be used in a production environment yet.

UPDATE

As of version 2.6 of mongoDB text search feature has production-quality and is enabled automatically.




回答2:


In MongoDB 2.4 - to enable the experimental text search, use

setParameter=textSearchEnabled=true

The following line didn't work for me in the mongodb.conf file.

textSearchEnabled=true

EDIT In MongoDB 2.6 + it is enabled by default. You just need to set up your text indexes.




回答3:


You have to specify this startup parameter (mentioned in above answers) when you start mongo. So if you start manually, then use:

mongod --setParameter textSearchEnabled=true 

Otherwise, if mongo is deamonized, put it into deamon script. Something like this:

start()
{
  echo -n $"Starting mongod: "
  daemon --user "$MONGO_USER" $NUMACTL $mongod --setParameter textSearchEnabled=true $OPTIONS

Then you create text index and check it's existence:

db.mycoll.createIndex( { someFieldName: "text" } );
db.mycoll.getIndexes()


来源:https://stackoverflow.com/questions/19894849/error-text-search-not-enabled-in-mongodb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!