zoukankan      html  css  js  c++  java
  • mongodb索引 全文索引之相似度查询

    我们在百度搜索中,可以看到与自己搜索度内容越相关度,排在越前面,这个需求可以在mongodb中很简单度实现,mongodb的全文索引不仅可以返回相匹配的查询结果,而且可以告诉你查询结果与你的查询条件多么的匹配
    全文索引相似度
    $meta操作符:{score:{$meta:'textScore'}}
    写在查询条件后面可以返回返回结果的相似度,与sort一起使用,可以达到很好的实用效果。
    查找
    > db.test2.find()
    { "_id" : ObjectId("5b677bc820eccd3c60a316d9"), "article" : "aa bb cc dd ee" }
    { "_id" : ObjectId("5b677bcb20eccd3c60a316da"), "article" : "aa bb cc dd rr gg" }
    { "_id" : ObjectId("5b677bd220eccd3c60a316db"), "article" : "aa bb cc dd hh " }
    { "_id" : ObjectId("5b677bf320eccd3c60a316dc"), "article" : "aa bb cc" }
    { "_id" : ObjectId("5b677bf920eccd3c60a316dd"), "article" : "aa bb cc dd" }
    有5条数据,用相似度匹配下
     
    > db.test.find({$text:{$search:'aa bb'}},{score:{$meta:'textScore'}})
    { "_id" : ObjectId("5b677d6720eccd3c60a316e1"), "article" : "aa bb ff hh rr", "score" : 1.2 }
    { "_id" : ObjectId("5b677d5e20eccd3c60a316e0"), "article" : "aa bb dd ee", "score" : 1.25 }
    { "_id" : ObjectId("5b677d5a20eccd3c60a316df"), "article" : "aa bb cc", "score" : 1.3333333333333333 }
    { "_id" : ObjectId("5b677d4820eccd3c60a316de"), "article" : "aa bb", "score" : 1.5 }
    后面返回个score,相似度最高的是1.5, aa bb,其他是1.25,1.2,这个结果不仅能够表明相似度,而且可以用来排序
    > db.test.find({$text:{$search:'aa bb'}},{score:{$meta:'textScore'}}).sort({score:{$meta:'textScore'}})
    { "_id" : ObjectId("5b677d4820eccd3c60a316de"), "article" : "aa bb", "score" : 1.5 }
    { "_id" : ObjectId("5b677d5a20eccd3c60a316df"), "article" : "aa bb cc", "score" : 1.3333333333333333 }
    { "_id" : ObjectId("5b677d5e20eccd3c60a316e0"), "article" : "aa bb dd ee", "score" : 1.25 }
    { "_id" : ObjectId("5b677d6720eccd3c60a316e1"), "article" : "aa bb ff hh rr", "score" : 1.2 }

    可以看到1.5排在最前面,运用这个,可以在自己的博客实现相似度查询
     
     
  • 相关阅读:
    span 设置inline-block 写文字的span错位
    vue自定义指令clickoutside实现点击其他元素才会触发
    css 字体上下居中显示 解决安卓手机line-height的偏差
    vue-resource
    vue.js 接收url参数
    vue2.0 组件之间的数据传递
    url带#号,微信授权,微信分享那些坑
    url带#号,微信支付那些坑
    javascript中的对象
    css写出0.5px边框(一)
  • 原文地址:https://www.cnblogs.com/wzndkj/p/9428194.html
Copyright © 2011-2022 走看看