利用Boost影响Lucene查询结果的排序

简介: 以下代码在Lucene2.1下通过,主要是通过设置Document的Boost来影响文档的权重,以达到控制查询结果顺序的目的(前提是不利用Sort排序的情况下):private void btnSearch_Click(object sender, EventArgs e)        { ...

以下代码在Lucene2.1下通过,主要是通过设置Document的Boost来影响文档的权重,以达到控制查询结果顺序的目的(前提是不利用Sort排序的情况下):

private   void  btnSearch_Click( object  sender, EventArgs e)
        
{
            RAMDirectory ramDir 
= new RAMDirectory();
            IndexWriter iw 
= new IndexWriter(ramDir,new StandardAnalyzer(),true);

            
string[] NameList = "you are my friend""you are my wife""I love you" };
            
string[] FileList = "1""2""3" };

            
for (int i = 0; i < NameList.Length; i++)
            
{
                Document doc 
= new Document();
                doc.Add(
new Field("name", NameList[i], Field.Store.YES, Field.Index.TOKENIZED));
                doc.Add(
new Field("file", FileList[i], Field.Store.YES, Field.Index.TOKENIZED));

                
if (i == 2{ doc.SetBoost(2.0f); }//这里设置了第三个文档优先级最高,所以在搜索出来的结果中,该文档排在最前
                iw.AddDocument(doc);
            }

            iw.Close();

            IndexSearcher _searcher 
= new IndexSearcher(ramDir);
            QueryParser _parser 
= new QueryParser("name",new StandardAnalyzer());
            Query  _query 
= _parser.Parse("you");
            Hits hitDoc 
= _searcher.Search(_query);

            lstResult.Items.Clear();
//lstResult为一个ListBox

            
for (int i = 0; i < hitDoc.Length(); i++)
            
{
                Document doc 
= hitDoc.Doc(i);
                lstResult.Items.Add(doc.Get(
"file"+ " " + doc.Get("name"));
            }
            
            _searcher.Close();
        }
以下是运行结果
目录
相关文章
|
Web App开发 缓存 移动开发
V8 JS AOT化的探索与实践
JS 语言的动态性非常优秀,其弱类型等语言特性也使得一线业务开发者更容易上手,但这也导致 JS 每一次运行前都要重复编译,使得 JS 的执行性能不理想;虽然之前 UC 内核有做过 Code Cache 方案,但支持的场景不够完整,与原生 Native 的技术方案比,尤其是首次启动场景(如各类大促活动等)还是有比较大的差距。为了能尽可能做到与 Native 对标,缩小性能差距,同时让业务开发者无感,我们开发了 JS AOT 功能。本分享将结合目前集团内自有业务形态,以及 JS 在 Web 中的执行过程,介绍JS AOT是如何设计和实现的,以及能给业务带来哪些收益。本篇分享来自阿里巴巴的喻世江在第
2774 0
V8 JS AOT化的探索与实践
|
数据可视化 前端开发 Java
ElasticSearch可视化管理工具cerebro的安装与简单使用
ElasticSearch可视化管理工具cerebro的安装与简单使用
1980 0
ElasticSearch可视化管理工具cerebro的安装与简单使用
|
11月前
|
人工智能 自然语言处理 IDE
CodeFuse IDE 0.7 版本发布,支持 Lint Error 智能改写
CodeFuse IDE 0.7 版本发布,支持 Lint Error 智能改写和 zsh 终端自然语言生成命令。它基于蚂蚁自研大模型和 OpenSumi 框架开发,提供代码编写建议、解释、单测生成等功能,提升开发效率。内置插件升级至 VS Code 1.88.1,未来将支持更多模型服务。下载地址:[GitHub](https://github.com/codefuse-ai/codefuse-ide/releases)。
281 4
|
传感器 安全 Java
如何使用 CoAP 协议进行设备通信
CoAP(Constrained Application Protocol)是一种适用于资源受限设备的轻量级协议,常用于物联网(IoT)设备之间的通信。本文介绍如何使用 CoAP 协议进行设备通信,包括协议的基本概念、消息格式、请求与响应流程以及实际应用示例。
1632 3
|
光互联
常见网络电缆类型详解
【10月更文挑战第14天】
432 0
|
域名解析 安全 网络协议
阿里云SSL证书免费版申请教程,可申请20张DV单域名证书
SSL证书能够为网站和移动应用(APP)及小程序提供数据HTTPS加密协议访问,保障数据的安全。阿里云提供一次性申请20张免费证书额度的服务,满足您的业务需求。
1997 0
阿里云SSL证书免费版申请教程,可申请20张DV单域名证书
|
存储 机器学习/深度学习 算法
Transformers 加速的一些常用技巧
Transformers架构因自注意力机制面临训练过程中的内存不足和GPU限制问题,主要源于大量参数、自注意力计算的高复杂度以及激活状态存储。为解决这些问题,常用策略包括:固定长度填充(使用注意力掩码处理填充部分)、动态填充(每批内序列长度相同)和等长匹配(按序列长度分组批量处理),以及自动混合精度(AMP)训练,通过float16降低内存使用和加速计算。尽管如此,大型模型仍可能需要高性能GPU支持。
394 3
|
安全 搜索推荐 定位技术
一张图30个知识点,全方位认知 Elasticsearch 技术发展
一张图30个知识点,全方位认知 Elasticsearch 技术发展
|
JavaScript
【vue】 vue 翻页时钟制作,vue2、vue3
【vue】 vue 翻页时钟制作,vue2、vue3
874 0
|
算法
数据结构和算法学习记录——二叉搜索树的插入操作、删除操作
数据结构和算法学习记录——二叉搜索树的插入操作、删除操作
219 0
下一篇
oss云网关配置