位置: 编程技术 - 正文

MongoDB实现基于关键词的文章检索功能(C#版)(mongodb应用实例)

编辑:rootadmin

推荐整理分享MongoDB实现基于关键词的文章检索功能(C#版)(mongodb应用实例),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mongodb使用案例,mongodb的基本操作,mongodb的基本操作,mongodb使用场景 简书,mongodb用法,mongodb基础,mongodb应用实例,mongodb使用案例,内容如对您有帮助,希望把文章链接给更多的朋友!

我的实现目标是:

可以通过一个或多个关键词搜索到文章。

可以通过文章的关键词列表查询到其相关文章。

查询到的结果依据相关程度降序排列。

查询速度要够快。(理论上关键词检索比全文检索要快很多的)

在网上找了一大圈,就没有一个靠谱的方法,基本都是只能传入单词来检索,而且基本都没有提供C#驱动版本的代码,于是乎自己研究出了这个实现方案:

MongoDB实现基于关键词的文章检索功能(C#版)(mongodb应用实例)

首先要求使用标签、分词、关键词提取组件对文章对应的关键词进行提取,然后作为数组格式,存入文章的Keywords字段中。

核心检索代码:

注意:这里一定要用Aggregate()方法做聚合,而不是常用的Find()方法做查询,Find()方法后面跟Project()方法也不会改变方法链中操作的对象类型,这样后面的SortByDescending()方法的目标对象还是Article类,而不是Project()方法中定义的匿名类,而SortByDescending()方法中传入的表达式又仅允许用来选择对象属性,不允许进行任何计算,所以就根本无法实现我们的需求,我在发现Aggregate()方法之前就在这里一直卡着很久~

用作关键词搜索时一般就是把关键词传入就可以了,不过传回的结果也有可能压根没有匹配到任何关键词,所以最好在发给用户前再检查一遍项目的匹配程度,把没有任何匹配的结果滤掉。

用作相关文章搜索时,直接把原文章的Keywords属性值传入,获取数量要比你预计的数量多1,因为非常可能你的原文章就在获取到的列表中,而且是前列,获取后滤掉原文章的ID,再执行Take方法返回你需要数量的项目即可(执行Take方法是为了以防你的原文没出现在列表中,这概率极小但也是有的)。

为了增进查询效率,还可以预设好索引,代码如下:

所使用的C#官方驱动版本是:MongoDB.Driver.2.2.3

Mongodb聚合函数count、distinct、group如何实现数据聚合操作 上篇文章给大家介绍了Mongodb中MapReduce实现数据聚合方法详解,我们提到过Mongodb中进行数据聚合操作的一种方式——MapReduce,但是在大多数日常使用过程

Mongodb中MapReduce实现数据聚合方法详解 Mongodb是针对大数据量环境下诞生的用于保存大数据量的非关系型数据库,针对大量的数据,如何进行统计操作至关重要,那么如何从Mongodb中统计一些数

MongoDB 学习笔记(一)-MongoDB配置 MongoDB简介MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据

标签: mongodb应用实例

本文链接地址:https://www.jiuchutong.com/biancheng/312537.html 转载请保留说明!

上一篇:MongoDB分片测试(mongodb分区分片)

下一篇:Mongodb聚合函数count、distinct、group如何实现数据聚合操作(mongodb聚合函数mapreduce)

  • 小规模纳税人代收水电费税率
  • 购买财务软件的会计分录怎么做
  • 税务师报名入口官网2022
  • 公司和劳务公司合作工资代发
  • 小微企业所得税减免政策
  • 企业所得税表利润总额怎么填写
  • 市政绿化工程的施工方案
  • 资产总额季度平均值计算公式
  • 小规模变更为一般纳税人流程
  • 发生非正常损失的购进货物不准予抵扣的增值税
  • 小规模纳税人开了3%的专票还能享受1%
  • 当月的费用次月入账可以么
  • 高新技术企业进项加计扣除
  • 开出转账支票用什么凭证
  • 定额发票有效期是多长时间?你知道吗?
  • 帮你用好小微企业所得税优惠的7个案例
  • 企业向关联方借款是否可以无偿
  • 旅行社代订住宿发票能报销吗
  • 开票资料地址填营业执照
  • 固定资产投资增长意味着什么
  • 议价收购股份的账务处理
  • 跨区经营的税务政策
  • 纳税人指什么意思
  • 商品进销差价主营业务收入
  • 进项税留抵期限
  • 没有组策略权限
  • 发生坏账账务处理
  • tdxcef.exe进程
  • PHP:Memcached::deleteByKey()的用法_Memcached类
  • 企业加计扣除活动
  • 代理业如何交增值税
  • 土地款什么时候进在建工程
  • 网络安全技术
  • 尚品汇在哪
  • yolov1 实现
  • opencv教程
  • yii框架教程
  • groupinfo命令
  • 报关单的运费没填怎么办
  • 对公取款
  • 差旅费的进项税额需要转出吗
  • 利润表的格式分为哪几种
  • 简易征收的进项税怎么处理
  • 固定资产折旧应纳税所得额调整
  • mockito mock方法
  • 自由会计服务类工作者
  • 购货销售折让会计分录
  • 小规模纳税人增值税申报表怎么填
  • 备用金有发票抵扣吗
  • 金税盘维护费抵税会计分录
  • 材料发票税额
  • 内账会计的岗位职责
  • 固定资产计提折旧表
  • 未付工资挂什么科目
  • 电费可以计入营业外收入吗
  • 免征增值税进项税怎么弄
  • 可供出售金融资产是指什么
  • 苗木设计方案
  • 企业建账流程图
  • Linux(Ubuntu)下Mysql5.6.28安装配置方法图文教程
  • centos怎么设置
  • window service2008r2激活
  • centos基本操作
  • linux系统简介
  • win7系统无法查看共享电脑
  • mac装xp系统
  • win10声音文件
  • windows 8怎么样
  • 保证windows 7安装后正常使用的安装方法
  • 安装centos no such device
  • android屏幕适配的五种方式
  • linux shell脚本实例
  • javaweb物流管理系统源码
  • shell脚本运行linux命令
  • jquery渐变效果
  • javascript中的数据类型分为两大类
  • python一些简单操作
  • jquery中if语句
  • 农民专业合作社章程完整版
  • 国税申报时间2023年10月
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设