日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

Lucene.Net如何实现搜索结果分类统计功能

發布時間:2025/3/15 asp.net 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Lucene.Net如何实现搜索结果分类统计功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近我們搜易站內搜索系統的一個客戶需要一個無限級分類和分類統計功能,要實現的效果如下:

但由于搜易站內搜索系統是基于Lucene.net 2.0開發的,并沒有內置的分類統計搜索功能,于是乎只能自己實現了,考慮到客戶的總數據量和搜索量不是特別大,于是用了簡單有效的方式來實現:

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

思路:

首先想到Lucene搜索出來的結果是一個Hits對象,Hits其實就是一個搜索結果文檔的集合對象,那么遍歷這個集合對象,跟給定的分類字段比對,存在就+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);
? ??}
}

?

適用場景:

這種實現方式比較適合中小型網站,在數據量和搜索量不大的情況下可用。

?

題外話:

以前一直覺得,作為一個中小型網站,搜索的篩選不應該太多,畢竟海量數據的百度,谷歌都簡單到只有一個搜索框,后來經過跟一些站長的交流后發現,其實并不是的這樣的,有些網站,比如圖片,素材,資源類網站,用戶對這類網站的站內搜索的使用頻率非常高的,對搜索質量,效率和精準篩選有比較高的要求,搜索的PV占比整站PV的比重是很高,如果搜索做的不好,對流量影響非常大,因為站內搜索好用的話,對PV的提升是雙倍甚至幾倍的,反之也是一樣的。

轉載于:https://www.cnblogs.com/kwklover/p/6494701.html

總結

以上是生活随笔為你收集整理的Lucene.Net如何实现搜索结果分类统计功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。