校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識(shí)庫 > MongoDB實(shí)現(xiàn)基于關(guān)鍵詞的文章檢索功能(C#版)

MongoDB實(shí)現(xiàn)基于關(guān)鍵詞的文章檢索功能(C#版)

熱門標(biāo)簽:機(jī)器人外呼系統(tǒng)軟件存在問題 智能電銷機(jī)器人銷售話術(shù) 福州電銷機(jī)器人源代碼 兗州電話外呼營銷系統(tǒng) 南京400電話怎樣辦理 徐州ai電銷機(jī)器人原理 沈陽營銷電銷機(jī)器人招商 企業(yè)智能外呼系統(tǒng)價(jià)格多少 高德地圖標(biāo)注商戶位置

我的實(shí)現(xiàn)目標(biāo)是:

可以通過一個(gè)或多個(gè)關(guān)鍵詞搜索到文章。

可以通過文章的關(guān)鍵詞列表查詢到其相關(guān)文章。

查詢到的結(jié)果依據(jù)相關(guān)程度降序排列。

查詢速度要夠快。(理論上關(guān)鍵詞檢索比全文檢索要快很多的)

在網(wǎng)上找了一大圈,就沒有一個(gè)靠譜的方法,基本都是只能傳入單詞來檢索,而且基本都沒有提供C#驅(qū)動(dòng)版本的代碼,于是乎自己研究出了這個(gè)實(shí)現(xiàn)方案:

首先要求使用標(biāo)簽、分詞、關(guān)鍵詞提取組件對(duì)文章對(duì)應(yīng)的關(guān)鍵詞進(jìn)行提取,然后作為數(shù)組格式,存入文章的Keywords字段中。

核心檢索代碼:

/// summary>
/// 根據(jù)關(guān)鍵詞獲取文章編號(hào)與標(biāo)題映射。
/// 注意:此方法會(huì)返回最為匹配的若干個(gè)項(xiàng)目,并根據(jù)匹配程度降序排列,即使是沒有任何關(guān)鍵詞匹配項(xiàng),也會(huì)返回若干個(gè)結(jié)果的。
/// 另需注意:如果是根據(jù)文章關(guān)鍵詞來查詢,一般來說其中一定包含原文章,所以應(yīng)該把期望獲得的數(shù)量加1,并在結(jié)果中移除原文。
/// /summary>
/// param name="limitNum">數(shù)量上限/param>
/// param name="keywords">關(guān)鍵詞集合/param>
/// returns>文章編號(hào)與標(biāo)題映射字典/returns>
public async TaskDictionaryGuid, string>> GetArticleDicByKeywordsAsync(int limitNum, IEnumerablestring> keywords)
{
var list =
await
Database.GetCollectionDomain.Entity.Article>("Article").Aggregate()
.Match(q => !q.IsDeleted  q.Keywords != null)
.Project(q => new { q.Id, q.Title, Count = q.Keywords.Count(t => keywords.Contains(t)) })
.SortByDescending(q => q.Count)
.Limit(limitNum)
.ToListAsync();
return list.ToDictionary(f => f.Id, f => f.Title);
}

注意:這里一定要用Aggregate()方法做聚合,而不是常用的Find()方法做查詢,F(xiàn)ind()方法后面跟Project()方法也不會(huì)改變方法鏈中操作的對(duì)象類型,這樣后面的SortByDescending()方法的目標(biāo)對(duì)象還是Article類,而不是Project()方法中定義的匿名類,而SortByDescending()方法中傳入的表達(dá)式又僅允許用來選擇對(duì)象屬性,不允許進(jìn)行任何計(jì)算,所以就根本無法實(shí)現(xiàn)我們的需求,我在發(fā)現(xiàn)Aggregate()方法之前就在這里一直卡著很久~

用作關(guān)鍵詞搜索時(shí)一般就是把關(guān)鍵詞傳入就可以了,不過傳回的結(jié)果也有可能壓根沒有匹配到任何關(guān)鍵詞,所以最好在發(fā)給用戶前再檢查一遍項(xiàng)目的匹配程度,把沒有任何匹配的結(jié)果濾掉。

用作相關(guān)文章搜索時(shí),直接把原文章的Keywords屬性值傳入,獲取數(shù)量要比你預(yù)計(jì)的數(shù)量多1,因?yàn)榉浅?赡苣愕脑恼戮驮讷@取到的列表中,而且是前列,獲取后濾掉原文章的ID,再執(zhí)行Take方法返回你需要數(shù)量的項(xiàng)目即可(執(zhí)行Take方法是為了以防你的原文沒出現(xiàn)在列表中,這概率極小但也是有的)。

為了增進(jìn)查詢效率,還可以預(yù)設(shè)好索引,代碼如下:

var c=Database.GetCollectionDomain.Entity.Article>("Article");
c.Indexes.DropAll();
await c.Indexes.CreateOneAsync(
BuildersDomain.Entity.Article>.IndexKeys.Ascending(q => q.Keywords));
//參考自:http://mongodb.github.io/mongo-csharp-driver/2.2/reference/driver/admin/#creating-an-index

所使用的C#官方驅(qū)動(dòng)版本是:MongoDB.Driver.2.2.3

您可能感興趣的文章:
  • C#簡單操作MongoDB的步驟全紀(jì)錄
  • C#中如何將MongoDB->RunCommand結(jié)果映射到業(yè)務(wù)類的方法總結(jié)
  • Mongodb在CSharp里實(shí)現(xiàn)Aggregate實(shí)例
  • C#中使用1.7版本驅(qū)動(dòng)操作MongoDB簡單例子
  • MongoDB入門教程之C#驅(qū)動(dòng)操作實(shí)例
  • C# 對(duì)MongoDB 進(jìn)行增刪改查的簡單操作實(shí)例
  • 關(guān)于C#生成MongoDB中ObjectId的實(shí)現(xiàn)方法
  • C#基于Mongo的官方驅(qū)動(dòng)手?jǐn)]一個(gè)Super簡易版MongoDB-ORM框架

標(biāo)簽:景德鎮(zhèn) 大理 邯鄲 本溪 吉安 昭通 鶴崗 丹東

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MongoDB實(shí)現(xiàn)基于關(guān)鍵詞的文章檢索功能(C#版)》,本文關(guān)鍵詞  MongoDB,實(shí)現(xiàn),基于,關(guān)鍵詞,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MongoDB實(shí)現(xiàn)基于關(guān)鍵詞的文章檢索功能(C#版)》相關(guān)的同類信息!
  • 本頁收集關(guān)于MongoDB實(shí)現(xiàn)基于關(guān)鍵詞的文章檢索功能(C#版)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    精品成人a区在线观看| 欧美写真视频网站| 青青草成人在线观看| 奇米影视一区二区三区小说| 九九精品一区二区| 国产a视频精品免费观看| 91搞黄在线观看| 日韩精品一区二区三区蜜臀 | 欧美国产97人人爽人人喊| 亚洲欧洲日产国产综合网| 麻豆精品蜜桃视频网站| 欧美午夜精品免费| 一区免费观看视频| 亚洲成av人片| 色综合久久久久久久久| 欧美高清一级片在线观看| 美女爽到高潮91| 日韩一区二区视频在线观看| 亚洲精品国产a久久久久久| 国产精品一线二线三线| 日韩欧美色电影| 另类专区欧美蜜桃臀第一页| 欧美高清视频一二三区| 一区二区三区四区在线播放 | 麻豆freexxxx性91精品| 欧美精选在线播放| 青青草成人在线观看| 欧美变态口味重另类| 激情综合网激情| 亚洲国产精品ⅴa在线观看| 成人av电影在线| 亚洲风情在线资源站| 7777精品伊人久久久大香线蕉完整版 | 91久久香蕉国产日韩欧美9色| 国产精品人妖ts系列视频 | 日韩视频一区在线观看| 精品一区二区在线播放| 久久一夜天堂av一区二区三区| 国产伦精品一区二区三区视频青涩| 精品国产一区二区三区不卡 | 国产在线精品免费| 国产精品电影院| 欧美性色aⅴ视频一区日韩精品| 一区二区三区毛片| 精品捆绑美女sm三区| 丰满放荡岳乱妇91ww| 亚洲v日本v欧美v久久精品| 久久精品在这里| 欧美中文字幕一二三区视频| 精品一区二区三区免费观看| 亚洲综合在线观看视频| 久久免费看少妇高潮| 555www色欧美视频| 91国内精品野花午夜精品| 国产乱码精品一区二区三区五月婷| 亚洲另类色综合网站| 国产午夜精品美女毛片视频| 91精品国产综合久久国产大片| 成人激情免费电影网址| 国产高清不卡一区二区| 久久精品久久99精品久久| 视频一区二区三区在线| 性欧美大战久久久久久久久| 亚洲一区二区av电影| 日韩精品一二三| 国产精品毛片大码女人| 久久精品一区二区| 国产欧美精品一区aⅴ影院| 久久精品亚洲乱码伦伦中文 | 欧美日韩精品久久久| 91丨九色丨黑人外教| 91免费在线看| 欧美色国产精品| 欧美mv日韩mv国产网站app| 欧美大胆人体bbbb| 国产精品区一区二区三| 亚洲一区自拍偷拍| 欧美另类高清zo欧美| 亚洲视频一区在线| 亚洲成人免费影院| 麻豆精品在线观看| 成人涩涩免费视频| 在线日韩一区二区| 欧美一区二区三区在线观看| 久久这里只有精品视频网| 国产精品毛片久久久久久| 亚洲精品美腿丝袜| 日韩高清一区二区| 成人免费毛片aaaaa**| 欧美伊人久久大香线蕉综合69 | 日韩免费高清电影| 亚洲老妇xxxxxx| 不卡在线观看av| 欧美不卡在线视频| 午夜精品爽啪视频| 日本高清不卡在线观看| 日本一区二区三区国色天香| 日本大胆欧美人术艺术动态| 99免费精品视频| 国产精品妹子av| 懂色一区二区三区免费观看| 3d成人动漫网站| 视频在线观看一区二区三区| 91在线精品秘密一区二区| 26uuu久久天堂性欧美| 久久精品噜噜噜成人av农村| 欧美一级国产精品| 蜜桃免费网站一区二区三区| 3d动漫精品啪啪1区2区免费| 亚洲一区二区三区在线看| 欧美中文字幕不卡| 日韩精品国产欧美| 亚洲精品一线二线三线无人区| 麻豆国产精品官网| 欧美国产精品一区二区三区| 99久久精品一区二区| 亚洲主播在线观看| 91精品国产aⅴ一区二区| 国产乱人伦精品一区二区在线观看 | 成人午夜视频福利| 欧美极品美女视频| 欧美三级乱人伦电影| 五月婷婷久久丁香| 久久综合网色—综合色88| 99久久精品国产网站| 天堂久久一区二区三区| 欧美韩国日本一区| 欧美老年两性高潮| 国产尤物一区二区在线| 亚洲自拍另类综合| 国产精品麻豆99久久久久久| 欧美日韩国产成人在线免费| 激情欧美一区二区| 午夜精品成人在线| 国产精品美女久久福利网站| 欧美视频一区二区三区四区 | 欧美日韩一区二区三区在线看 | 欧美日韩久久久一区| 国产麻豆精品一区二区| 欧美aaaaaa午夜精品| 亚洲线精品一区二区三区| 国产欧美一区二区三区在线老狼| 色综合久久久久综合体桃花网| 蜜桃91丨九色丨蝌蚪91桃色| 一区二区理论电影在线观看| 亚洲国产高清aⅴ视频| 欧美精品一区二区三区在线| 制服丝袜一区二区三区| 欧美怡红院视频| 欧美少妇bbb| 欧美一区二区三区免费在线看| 在线亚洲欧美专区二区| 色婷婷av一区二区三区软件 | 日韩免费性生活视频播放| 欧美三级乱人伦电影| 91精品在线观看入口| 欧美顶级少妇做爰| 日韩欧美综合在线| 久久看人人爽人人| 国产精品久久国产精麻豆99网站| 久久久激情视频| 亚洲免费三区一区二区| 一区二区免费在线播放| 五月婷婷综合激情| 国产一区二区毛片| 91丝袜国产在线播放| 欧美一区二区三区视频在线观看| 欧美精品久久天天躁| 久久精品亚洲乱码伦伦中文| 亚洲一区在线看| 福利视频网站一区二区三区| 欧美日韩精品高清| 中文字幕在线观看一区| 午夜电影久久久| 99re8在线精品视频免费播放| 91极品视觉盛宴| 中文无字幕一区二区三区| 五月天精品一区二区三区| 乱中年女人伦av一区二区| 国产老女人精品毛片久久| 成人国产精品免费观看视频| 精品免费日韩av| 午夜精品免费在线观看| 成人h版在线观看| 日韩精品一区二区三区视频播放 | 欧美性猛交xxxxxxxx| 国产日韩v精品一区二区| 欧美一区二区三区四区久久| 综合欧美一区二区三区| 国内外成人在线| 日韩一二三区不卡| 麻豆精品视频在线观看| 欧美人与z0zoxxxx视频| 亚洲黄色小说网站| 欧美亚男人的天堂| 国产调教视频一区| 视频精品一区二区| 26uuu国产在线精品一区二区| 亚洲123区在线观看| 在线观看不卡视频|