位置: 编程技术 - 正文

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)

  • 电子税务局财务报表怎么更正申报
  • 个体户是否属于免征纳税对象是什么意思
  • 建筑业的账务处理
  • 车船税讲解
  • 一般纳税人租赁费税率5%是简易征收吗?
  • 一般纳税人可以开1%的发票吗
  • 融资租出的设备计入什么科目
  • 收到对方红字发票如何做账
  • 固定资产一次性计入费用的账务处理
  • 合并后少数股东权益的处理
  • 帮别人买交强险,受益人是我,有影响吗
  • 应付账款扣款怎么做账
  • 小型微利企业享受企业所得税减免优惠时主要留存备查
  • 生育津贴个税汇算清缴可以扣除吗
  • 发票抬头写个人有效吗
  • 机械设备增值税税率
  • 个税手续费返还计入哪个科目
  • 预充值发票可以列支吗?
  • 提前收取租赁收入的财务处理
  • 资产负债表和利润表在哪里查
  • 分配现金股利是什么活动
  • 预付专利转让费计入什么科目?
  • 印花税的征税范围及税率
  • 最新气象报告
  • 税控服务费政策
  • 公司之间可以借款吗怎么做账
  • 跨年发票能不能报销
  • internet笔记
  • 支付宝提现到企业账户 怎么开票
  • linux测验
  • 无法访问windows installer服务,没有正确安装
  • 安保费差额纳税是什么意思
  • 新公司成立股份比例
  • PHP:Memcached::getByKey()的用法_Memcached类
  • 金融公司呆账对当事人有什么影响
  • 应付票据和应收票据的关系
  • 橡皮树的养殖方法视频教程
  • 报销差旅费会计凭证
  • php ob缓存
  • 业务招待费列支范围对照表
  • 税前扣除项目什么意思
  • js鼠标键盘事件
  • yolo算法python代码
  • tracet命令
  • python函数的默认值
  • 社保费和公积金一定要计提吗
  • python PaddleOCR库的介绍
  • 织梦专题页模板
  • 无形资产摊销是按原值吗
  • 小微企业增值税优惠政策最新2023
  • 培训公司收取培训费用合法吗
  • 业务招待费的范畴
  • 跨年发票分录
  • 缴纳社保不计提可以吗
  • 基建期罚款支出账务处理
  • 城投公司政府购买服务
  • 报销发票金额大于付款金额
  • ppp项目政府可以不出资
  • sqlserver将查询结果作为临时表
  • ubuntu 桌面
  • freebsd怎么样
  • win10系统遇到错误
  • win7怎么给硬盘重新分区
  • ie运行flash
  • 放大镜windows快捷键
  • rmxp4droid for 天敏电视盒子
  • jquery 瀑布流
  • cocos2d怎么用
  • qt绘制3d
  • ajax的异步是什么意思
  • linux终端命令行和输出在一行
  • unity点击3d物体
  • 两个Collider遮挡的解决办法
  • 安卓版本apk
  • u3d官方
  • 设置默认python版本
  • 黑龙江地方税务总局官网
  • 北京 国税
  • 个税已申报税额为0可以退税吗
  • 舟山自贸区税收优惠政策五减五免
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设