1

假设我在集合 fname、lname、contactData 中有以下字段

样本:

  1. fname = 德米特里
  2. lname = Semenov
  3. 联系人数据 = 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 回答