Текстовый индекс MongoDB для всех полей с использованием Java

Я хочу создать текстовый индекс для всех моих полей в MongoDB. Я знаю, что это можно сделать так:

db.collection.ensureIndex({ "$**": "text" },{ name: "TextIndex" })

Но я хочу создать этот индекс в своей программе Java. Я пробовал с этим:

collection.createIndex(new BasicDBObject("$**","text"),newBasicDBObject("name","TextIndex"));

но это дало мне эту ошибку: com.mongodb.MongoException: Can't canonicalize query: BadValue unknown operator: $**

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

Заранее спасибо.


person NEO    schedule 15.08.2014    source источник
comment
Текстовый поиск — довольно новая функция. Возможно, вы используете устаревшую версию java-драйвера? Или, может быть, даже самой MongoDB? Текстовый поиск должен быть включен через параметр конфигурации в 2.4 и не существует в предыдущих версиях.   -  person Philipp    schedule 15.08.2014
comment
Да, я знаю. И мой драйвер MongoDB, и драйвер Java являются их последней версией. Я могу создать индекс для одного поля, и он работает, но я хочу создать индекс для всех полей.   -  person NEO    schedule 15.08.2014
comment
О, кажется, мой Java-драйвер на самом деле не был последней версией. Я получил новейшую версию, и теперь она работает как шарм.   -  person NEO    schedule 15.08.2014


Ответы (1)


Упс, кажется, мой Java-драйвер на самом деле не был последней версией. Я получил новейшую версию, и теперь она работает как шарм.

Всегда загружайте библиотеки из репозиториев maven.

person NEO    schedule 15.08.2014