2015-11-23 40 views
1

我试图创建一个没有默认语言的文本索引。官方的文档指定If you specify a language value of "none", then the text search uses simple tokenization with no list of stop words and no stemming.因此我想:创建一个没有默认语言的mongodb文本索引

createIndex({aliases : "text"}, {name : "aliases_txt"}, {default_language: "none"}) 

然而,创建的索引忽略了我的选择,有“英语”作为默认语言:

{ 
"v": 1, 
"key": { 
    "_fts": "text", 
    "_ftsx": 1 
}, 
"name": "aliases_txt", 
"ns": "ner-dict.ents", 
"weights": { 
    "aliases": 1 
}, 
"default_language": "english", 
"language_override": "language", 
"textIndexVersion": 2 
} 

版本:mongod-3.0.3

回答

1

事实上,在您的解决方案中,name值被忽略。如果你想同时指定索引名和DEFAULT_LANGUAGE,你需要使用:

db.textTest.createIndex({aliases : "text"}, {name : "aliases_txt", default_language: "none"}); 

name,并在同一个“选项”文件参数default_language

+0

哦,对,'createIndex'需要2个参数,很好。我希望js会在额外的参数上抛出一个错误。 – dimid

3

我不得不更改顺序: db.ents.createIndex({aliases : "text"}, {default_language: "none"}, { name: "aliases_txt"})

+0

然后随意接受你自己的答案。但请注意,如果没有语言,则不会提供词干和停用词。 –