2017-04-30 11 views
0

私はmongodbにインポートしたYelpのいくつかのjsonファイルに基づいて3つのインデックスを作成しました。mongo dbでこのインデックスエラーの原因は何ですか?

> db.review.createIndex({"text":"text"}) 
{ 
    "createdCollectionAutomatically" : false, 
    "numIndexesBefore" : 1, 
    "numIndexesAfter" : 2, 
    "ok" : 1 
} 
> db.business.createIndex({"categories":"text"}) 
{ 
    "createdCollectionAutomatically" : false, 
    "numIndexesBefore" : 1, 
    "numIndexesAfter" : 2, 
    "ok" : 1 
} 
> db.business.createIndex({"attributes":"text"}) 
{ 
    "ok" : 0, 
    "errmsg" : "Index with pattern: { _fts: \"text\", _ftsx: 1 } already exists with different options", 
    "code" : 85 

基本的には、私のmongodbでカウント機能を高速にするために3つのインデックスを作成しようとしています。

何ERRMSGを行い、 ": "のパターンとインデックス:{_fts:\" テキスト\"、_ftsx:1}?すでに異なるオプションで存在する」という意味

すると私は属性としてdifferenteのものを選択するか、すべきべき私はそれをドロップする?あなたのbusinessコレクションで

答えて

1

MongoDB (as of v3.4) only allows one text index per collection

、すでにcategoriesにテキストインデックスを構築しました。だから、attributes上の2番目のテキストインデックスは、失敗します。

+0

ちょっと先生をすることができます私の他の質問を誓う?私はそれに迷っています.2つ以上のコレクションを持つインデックスを構築するにはどうすればいいですか?両方のコレクションに含まれているアイテムを要件に合わせて数えたいと思います。 – NewSQLguy

+0

@NewSQLguy:インデックスは1つのコレクションでのみ動作します。 2つの異なるコレクションのアイテムを数えたい場合は、各コレクションに対して1つのクエリを実行し、アプリケーションで結果を結合する必要があります。 –

+0

テキストインデックスを使いこなす場合は、さまざまなバリエーションを試してみることになりますが、新しいテキストインデックスを使用する前に古いテキストインデックスを削除する必要があります。 – chhtm

関連する問題