6

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

4

3 に答える 3

16

MongoDB 2.4 では、実験的なテキスト検索を有効にするには、次を使用します。

setParameter=textSearchEnabled=true

次の行は、mongodb.conf ファイルで機能しませんでした。

textSearchEnabled=true

EDIT MongoDB 2.6 +では、デフォルトで有効になっています。テキスト インデックスを設定するだけです。

于 2013-11-16T00:11:51.170 に答える
5

MongoDB テキスト検索はまだ実験的な機能です。そのため、デフォルトでは無効になっており、手動で有効にする必要があります。これを行うには、コマンド ライン パラメーターを使用して mongod を開始するか、ファイル mongodb.conf--setParameter textSearchEnabled=trueに行を追加します。textSearchEnabled=true

テキスト検索は実験的な機能であるため、本番環境ではまだ使用しないでください。

アップデート

2.6mongoDB のテキスト検索機能のバージョンでは、製品品質があり、自動的に有効になります。

于 2013-11-10T21:53:20.207 に答える
0

mongo を起動するときに、この起動パラメーター (上記の回答に記載) を指定する必要があります。したがって、手動で開始する場合は、次を使用します。

mongod --setParameter textSearchEnabled=true 

それ以外の場合、mongo がデーモン化されていない場合は、デーモン スクリプトに入れます。このようなもの:

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

次に、テキスト インデックスを作成し、その存在を確認します。

db.mycoll.createIndex( { someFieldName: "text" } );
db.mycoll.getIndexes()
于 2018-05-09T09:25:09.860 に答える