2013-07-23 5 views
1

Я бегу mongodb v2.4.5. У меня есть документ со следующими полями:mongodb полнотекстовый поиск и объекты json

{ "_id" : ObjectId("<someid>"), temp:"python", github_repo_languages" : { "python" : 17, "java" : 984 } } 

Если я выполнить запрос:

db.users.runCommand("text", { search: "java" }) 

{ 
"queryDebugString" : "java||||||", 
"language" : "english", 
"results" : [ ], 
"stats" : { 
    "nscanned" : 0, 
    "nscannedObjects" : 0, 
    "n" : 0, 
    "nfound" : 0, 
    "timeMicros" : 97 
}, 
"ok" : 1 
} 

MongoDB не находит каких-либо документов.

Вот мои показатели:

> db.users.getIndexes() 
[ 
{ 
    "v" : 1, 
    "key" : { 
     "_id" : 1 
    }, 
    "ns" : "workingon.users", 
    "name" : "_id_" 
}, 
{ 
    "v" : 1, 
    "key" : { 
     "_fts" : "text", 
     "_ftsx" : 1 
    }, 
    "ns" : "workingon.users", 
    "name" : "users_text_index", 
    "weights" : { 
     "$**" : 1 
    }, 
    "default_language" : "english", 
    "language_override" : "language", 
    "textIndexVersion" : 1 
} 
] 

Другие запросы, работать для простых текстовых полей. Является ли проблема сложным объектом json? Планируется ли добавить сложные json-объекты?

ответ

0

В соответствии с документацией (http://docs.mongodb.org/manual/core/text-search/) текстовый индекс должен находиться в поле или в полях, значение которых представляет собой строку или массив элементов строки. Итак, как вы указали, поле json не будет работать.

+0

Если бы я написал документы, я бы указал на это намного яснее. – drfence

+0

@drfence, для меня это также очень важный момент, который нужно четко указать. Я видел это только потому, что у меня был большой интерес к этому вопросу. – innoSPG

+0

Я отправил запрос на изменение, чтобы назвать его более четко, возможно, они его примут. – drfence

Смежные вопросы