2013-11-19 3 views
0

Я пытаюсь сделать свойство «title» объекта «book» доступным для поиска.secureIndex ({title: "text"}) не работает - MongoDB

Я слежу за these steps о том, как создать текстовый индекс для определенного свойства, и these steps о том, как искать в поле, однако я, кажется, получаю сообщение об ошибке.

mongo 
use library 
db.books.ensureIndex({ title: "text" }) 
db.books.insert({title: "JavaScript The Good Parts"}); 
db.books.runCommand("text", { search: "javascript" }) 
{ 
    "errmsg" : "no such cmd: text", 
    "bad cmd" : { 
     "text" : "books", 
     "search" : "javascript" 
    }, 
    "ok" : 0 
} 

Может ли кто-нибудь сообщить, где я могу ошибиться? Благодаря

MongoDB версия оболочки: 2.4.8

+0

Включили ли вы [текстовый поиск] (http://docs.mongodb.org/manual/tutorial/enable-text-search/)? – n1ckolas

+0

Он включил его, потому что в противном случае он получит ошибку на части обеспечения. –

+0

Попробуйте использовать 'use admin' и после этого' db.runCommand ({setParameter: 1, textSearchEnabled: 1}) '. В моем случае это помогло. То, что я нашел странным, заключается в том, что у вас не было ошибки при размещении индексов. –

ответ

2

Попробуйте сделать use admin и после этого:

db.runCommand({ 
    setParameter: 1, 
    textSearchEnabled: 1 
}) 

В моем случае это помогло. То, что я нашел странным, заключается в том, что у вас не было ошибки при размещении индексов. Потому что, если у вас возникнет эта ошибка, вам нужно всего лишь enable text search при запуске.