mongodb如何全文检索

mongodb的全文检索依靠的是标签和索引
它的文档里有一个数组,数组里存放着搜索时需要用的关键字,参考:
textOne = {
   title: "Apollo",
   text: "Some text about Apollo moon landings",
   tags: [ "moon", "apollo阿波罗号", "航天","text"]
};
其中testOne我存放在articles文档里,gitHub示例

搜索的时候我们只要按照tags里面的词(数组的key不一定必须命名为tags)进行查找就行了,
可以使用db.articles.findOne({tags:"航天"})
也可以使用db.articles.find({tags:"apollo阿波罗号"})进行查找
我测试过,中英文查找都可以

使用全文检索的时候就是先把文章进行分词,然后使用存放分词的数组进行查找就可以了,实质就是使用标签功能,官网是这样举例的:
{ title : "this is fun" ,
  _keywords : [ "this" , "is" , "fun" ]
}
这样的检索方式就需要我们自己先写代码給文章分词。
我简单写了个正则表达式来分词:
var str="this is a test text.";
var tmp = str.split(/\s+|\.+|,+/);//用空格,句号,逗号分隔开
console.log(tmp);
这样的全文检索不太适合大段的文字,适合那些比较长的标题进行进行查找。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值