当前位置:   article > 正文

mongodb索引---全文索引_mongotemplate find $text

mongotemplate find $text

文本索引能解决快速文本查找的需求,比如有一个博客文章集合,需要根据博客的内容来快速查找,则可以针对博客内容建立文本索引。
MongoDB支持在字符串内容上执行文本检索的查询操作。为了执行文本检索,它使用“text index”和“$text”操作符。
注意:一张表,只能有一个全文索引

1 准备测试数据

  1. db.textIndexTest.insertMany([
  2. { author: "杜甫", title: "绝句", article: "两个黄鹂鸣翠柳,   一行白鹭上青天。窗含西岭千秋雪,门泊东吴万里船。" },
  3. { author: "李白", title: "静夜思", article: "床前明月光,疑是地上霜。 举头望明月,低头思故乡。" },
  4. { author: "李白", title: "静夜思", article: "床前明月光,山寨,疑是地上霜。 举头望明月,低头思故乡。" },
  5. { author: "张 王", title: "你好", article: "测试数据" },
  6. { author: "李贺", title: "李凭箜篌引", article: "吴丝蜀桐张高秋,空山凝云颓不流。 江娥啼竹素女愁,李凭中国弹箜篌。 昆山玉碎凤凰叫,芙蓉泣露香兰笑。 十二门前融冷光,二十三丝动紫皇。 女娲炼石补天处,石破天惊逗秋雨。 梦入神山教神妪,老鱼跳波瘦蛟舞。 吴质不眠倚桂树,露脚斜飞湿寒兔。" }
  7. ])

2 测试索引

  1. //建全文索引
  2. db.textIndexTest.createIndex( { title:"text",article: "text" } )
  3. //精确检索
  4. db.textIndexTest.find({$text:{$search:"床前明月光"}}).explain()
  5. //词语排除
  6. //使用横杠(- )字符,将该字符放在不要的词语前,查询时可排除该词语。
  7. db.textIndexTest.find({$text:{$search:"床前明月光 -山寨"}}).explain()
  8. //返回相关性分数,并按分数排序
  9. db.textIndexTest.find(
  10. { $text: { $search: "床前明月光" } },
  11. { score: { $meta: "textScore" } }
  12. ).sort({ score: { $meta: "textScore" } })

参考博文
https://zhuanlan.zhihu.com/p/100820537

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/883124
推荐阅读
相关标签
  

闽ICP备14008679号