Lucene.Net实现搜索结果分类统计功能(中小型网站)

 更新时间:2017年03月03日 10:49:12   作者:kwklover  
这篇文章主要介绍了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);
  }
}

适用场景:

这种实现方式比较适合中小型网站,在数据量和搜索量不大的情况下可用。

以上所述是小编给大家介绍的Lucene.Net实现搜索结果分类统计功能(中小型网站),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Asp.Net Core添加请求头自定义认证的示例

    Asp.Net Core添加请求头自定义认证的示例

    这篇文章主要介绍了Asp.Net Core添加请求头自定义认证的示例,帮助大家更好的理解和学习使用.net技术,感兴趣的朋友可以了解下
    2021-04-04
  • linq中的聚合操作符

    linq中的聚合操作符

    这篇文章介绍了linq中的聚合操作符,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 如何在ASP.Net Core使用分布式缓存的实现

    如何在ASP.Net Core使用分布式缓存的实现

    这篇文章主要介绍了如何在ASP.Net Core使用分布式缓存的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 如何使用ASP.NET MiniAPI 调试未匹配请求路径

    如何使用ASP.NET MiniAPI 调试未匹配请求路径

    ASP.NET MiniAPI是一个轻量级的Web API框架,它可以让我们快速地构建和部署RESTful服务,本文给大家介绍使用ASP.NET MiniAPI 调试未匹配请求路径的方法,感兴趣的朋友一起看看吧
    2024-01-01
  • asp.net在事件中启动线程来打开一个页面的实现方法

    asp.net在事件中启动线程来打开一个页面的实现方法

    点击一个按钮做两件事情,一件需要点击按钮马上完成,另一件事情是点击按钮后做其他事情,不会的朋友一起来看看下面是如何实现的
    2014-11-11
  • 使用 Salt + Hash 将密码加密后再存储进数据库

    使用 Salt + Hash 将密码加密后再存储进数据库

    如果你需要保存密码(比如网站用户的密码),你要考虑如何保护这些密码数据,象下面那样直接将密码写入数据库中是极不安全的,因为任何可以打开数据库的人,都将可以直接看到这些密码
    2012-12-12
  • .Net Core WebApi部署在Linux服务器上的方法

    .Net Core WebApi部署在Linux服务器上的方法

    这篇文章主要介绍了.Net Core WebApi部署在Linux服务器上的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • asp.net调用系统设置字体文本框的方法

    asp.net调用系统设置字体文本框的方法

    这篇文章主要介绍了asp.net调用系统设置字体文本框的方法,包括设置文本字体样式和大小,需要的朋友可以参考下
    2014-09-09
  • Asp.Net用OWC操作Excel的实例代码

    Asp.Net用OWC操作Excel的实例代码

    这篇文章介绍了Asp.Net用OWC操作Excel的实例代码,有需要的朋友可以参考一下,希望对你有所帮助
    2013-07-07
  • ASP.NET Core缓存静态资源示例详解

    ASP.NET Core缓存静态资源示例详解

    我们在优化Web服务的时候,对于静态的资源文件,通常都是通过客户端缓存、服务器缓存、CDN缓存,这三种方式来缓解客户端对于Web服务器的连接请求压力的。下面这篇文章主要给大家介绍了关于ASP.NET Core缓存静态资源的相关资料,需要的朋友可以参考下。
    2018-02-02

最新评论