利用Boost影响Lucene查询结果的排序
以下代码在Lucene2.1下通过,主要是通过设置Document的Boost来影响文档的权重,以达到控制查询结果顺序的目的(前提是不利用Sort排序的情况下):
{
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();
}
以下是运行结果
转载于:https://www.cnblogs.com/yjmyzz/archive/2008/01/03/1025059.html
利用Boost影响Lucene查询结果的排序相关推荐
- lucene查询解析器语法
注意:使用QueryParser查询,关键词是会被分词的,如果不需要分词,可以选择使用Lucene提供的API查询类. Lucene提供了丰富的API来组合定制你所需要的查询器,同时也可以利用Quer ...
- 利用SQL索引提高查询速度
1.合理使用索引 索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率.现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构. 索引的使用要恰到好处,其使用原则如下: 在经常进行连接 ...
- lucene 查询示例_高级Lucene查询示例
lucene 查询示例 本文是我们名为" Apache Lucene基础知识 "的学院课程的一部分. 在本课程中,您将了解Lucene. 您将了解为什么这样的库很重要,然后了解Lu ...
- 高级Lucene查询示例
本文是我们名为" Apache Lucene基础知识 "的学院课程的一部分. 在本课程中,您将了解Lucene. 您将了解为什么这样的库很重要,然后了解Lucene中搜索的工作方式 ...
- mysql rownum groupby_如何正确利用Rownum来限制查询所返回的行数?
如何正确利用Rownum来限制查询所返回的行数? 软件环境: 1.Windows NT4.0+ORACLE 8.0.4 2.ORACLE安装路径为:C:\ORANT 含义解释: 1.rownum是or ...
- lucene查询原理
lucene查询原理 1. lucene 数据模型 2. lucene 查询过程 3. SkipList 哨兵数组 skipDoc docDeltaBuffer Lucene中使用读取跳表SkipLi ...
- Mongodb 索引 对查询结果的排序
本文主要讨论 "mongodb的索引" 和 "查询结果的排序" 之间的关系,索引对排序有什么影响,为什么有影响,应该遵循什么规则. 1. 先从创建单字段索引,认 ...
- 利用openVuln API自动化查询思科产品漏洞
利用openVuln API自动化查询思科产品漏洞 B站视频链接:https://www.bilibili.com/video/BV1ZG411P7cf/?spm_id_from=333.999. ...
- sci影响因子查询方法
转自:http://jingyan.baidu.com/article/676629972e8feb54d51b8482.html 打开SCI影响因子查询数据库(ISI)后,出现如下界面,根据下图所示 ...
最新文章
- 奖学金申请 | 2019年清华-青岛数据科学研究院​“RONG”奖学金申请通知
- Windows Small Business Server 2003 意外关闭 ; 1001, 1013 和 1014 事件记录
- Linux 文本界面转到图形界面
- 时间串变成Date类型的数据
- 使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件
- 中国联通与小米深度联动 联合推出Wi-Fi 6路由器AX3600
- 三种主流的Kubernetes部署方式
- Nginx内置模块简介
- 洛谷——P1914 小书童——凯撒密码
- AtCoder Grand Contest 025 B - RGB Coloring
- Win7下如何显示文件的扩展名?
- IOS开发之——屏幕适配-AutoLayout动画(05)
- python怎么查找word文档,Python读取word文档内容
- 基于elementui的年月日周时间控件
- 用两个栈实现队列(Java)
- vmware 文件夹共享
- 数字化闯入“深水区”,超级营销平台是突破口吗?
- python四则运算完整代码_2/20Python之四则运算
- springboot文件上传 Required request part 'file' is not present
- Read-olny file system-mysql建表不成功
热门文章
- 对学生成绩表按计算机应用成绩排序,计算机等级考试EXCEL练习题-12学生成绩表2...
- java 后台线程作用_Java 后台线程介绍
- 车险赔付率分析报告_车险综合改革出台:下调附加费用率,三者限额提至千万...
- 5导出word_重磅更新 !支持题库导出为word
- c语言case两个变量的组合,我可以使用带有两个变量的case/switch语句吗?
- n平方的求和公式_高中数学:数列求和及数列的综合应用,掌握常见模型
- 希尔排序python 简书_数据结构_排序_直接插入+希尔排序
- plsql口令过期_Oracle 11g中密码过期问题详解
- JDBC开发之数据库连接池
- Android 屏幕适配资料汇总