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排在最前面,运用这个,可以在自己的博客实现相似度查询
     
     
  • 相关阅读:
    HotSpot 的垃圾收集器
    HTML5之日历控件
    设计模式之抽象工厂模式
    设计模式之工厂模式
    设计模式之单例模式
    JavaScript实现input输入框限制输入值的功能
    微信公众号二维码获取
    mybatis的一对多,多对一,以及多对对的配置和使用
    kindeditor在Java项目中的应用以及图片上传配置
    Spring和quartz整合的入门使用教程
  • 原文地址:https://www.cnblogs.com/wzndkj/p/9428194.html
Copyright © 2011-2022 走看看