溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Lucene.Net如何實現(xiàn)搜索結(jié)果分類統(tǒng)計功能

發(fā)布時間:2021-07-10 10:03:03 來源:億速云 閱讀:113 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Lucene.Net如何實現(xiàn)搜索結(jié)果分類統(tǒng)計功能,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

要實現(xiàn)的效果如下:

Lucene.Net如何實現(xiàn)搜索結(jié)果分類統(tǒng)計功能

但由于搜易站內(nèi)搜索系統(tǒng)是基于Lucene.net 2.0開發(fā)的,并沒有內(nèi)置的分類統(tǒng)計搜索功能,于是乎只能自己實現(xiàn)了,考慮到客戶的總數(shù)據(jù)量和搜索量不是特別大,于是用了簡單有效的方式來實現(xiàn):

因為涉及到分類的操作,但是每個站點的分類體系還是有些不一樣的,本文主要提供思路和部分演示代碼,給有需要的童鞋參考:

思路:

首先想到Lucene搜索出來的結(jié)果是一個Hits對象,Hits其實就是一個搜索結(jié)果文檔的集合對象,那么遍歷這個集合對象,跟給定的分類字段比對,存在就+1 。

代碼示例:

Lucene.Net.Search.Hits hits = Searcher.Search(querystring) ;
int hcount = hits.Length();
Lucene.Net.Documents.Document doc = null;
for (int i = 0; i < hcount; i++)
{
  doc = hits.Doc(i);
  string c1 = doc.GetField("Cate1").StringValue();
   //判斷是否存在于給定的分類集合中,存在則加1
  if (parameter.Cate1Groups.ContainsKey(c1))
  {
    parameter.Cate1Groups[c1] = parameter.Cate1Groups[c1] + 1;
  }
  else
  {
    parameter.Cate1Groups.Add(c1, 1);
  }
}

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Lucene.Net如何實現(xiàn)搜索結(jié)果分類統(tǒng)計功能”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI