1

コレクション fname、lname、contactData に次のフィールドがあるとします。

サンプル:

  1. fname = ドミトリー
  2. lname = セメノフ
  3. contactData = 9491001120 9492006839 dmitry@domain.com dima@domain.com

そのようなコレクションに FULLTEXT 検索を実装することは可能ですか?たとえば、Dmitry & dima@domain.com で検索できますか?

4

1 に答える 1

2

基本的にはい。

  1. mongodb インスタンスのテキスト検索を有効にします。mongod --setParameter textSearchEnabled=true
  2. 検索し たいフィールドのフルテキスト インデックスを作成します。db.emails.ensureIndex( { fname: "text", lname: "text", contactData: "text" } )
  3. テキスト検索を実行して、関連するドキュメントを見つけます。db.emails.runCommand("text", { search: "Dmitry", language: "none" });

名前と電子メール アドレスのインデックスを作成しているので、 に設定languageするとおそらく役に立ちます。noneそうしないと、ステミングとストップ ワードが使用されます。

検索の使用: 「Dmitry dmitry@domain.com」は、フィールドのいずれかに Dmitry または dmitry@domain.com のいずれかを含むドキュメントを検索します。現在、AND を使用する方法はないと思います。

于 2013-10-01T08:41:21.903 に答える