以下代码在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();
        }

以下是运行结果

转载于:https://www.cnblogs.com/yjmyzz/archive/2008/01/03/1025059.html

利用Boost影响Lucene查询结果的排序相关推荐

  1. lucene查询解析器语法

    注意:使用QueryParser查询,关键词是会被分词的,如果不需要分词,可以选择使用Lucene提供的API查询类. Lucene提供了丰富的API来组合定制你所需要的查询器,同时也可以利用Quer ...

  2. 利用SQL索引提高查询速度

    1.合理使用索引 索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率.现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构. 索引的使用要恰到好处,其使用原则如下: 在经常进行连接 ...

  3. lucene 查询示例_高级Lucene查询示例

    lucene 查询示例 本文是我们名为" Apache Lucene基础知识 "的学院课程的一部分. 在本课程中,您将了解Lucene. 您将了解为什么这样的库很重要,然后了解Lu ...

  4. 高级Lucene查询示例

    本文是我们名为" Apache Lucene基础知识 "的学院课程的一部分. 在本课程中,您将了解Lucene. 您将了解为什么这样的库很重要,然后了解Lucene中搜索的工作方式 ...

  5. mysql rownum groupby_如何正确利用Rownum来限制查询所返回的行数?

    如何正确利用Rownum来限制查询所返回的行数? 软件环境: 1.Windows NT4.0+ORACLE 8.0.4 2.ORACLE安装路径为:C:\ORANT 含义解释: 1.rownum是or ...

  6. lucene查询原理

    lucene查询原理 1. lucene 数据模型 2. lucene 查询过程 3. SkipList 哨兵数组 skipDoc docDeltaBuffer Lucene中使用读取跳表SkipLi ...

  7. Mongodb 索引 对查询结果的排序

    本文主要讨论 "mongodb的索引" 和 "查询结果的排序" 之间的关系,索引对排序有什么影响,为什么有影响,应该遵循什么规则. 1. 先从创建单字段索引,认 ...

  8. 利用openVuln API自动化查询思科产品漏洞

    利用openVuln API自动化查询思科产品漏洞 B站视频链接:​​https://www.bilibili.com/video/BV1ZG411P7cf/?spm_id_from=333.999. ...

  9. sci影响因子查询方法

    转自:http://jingyan.baidu.com/article/676629972e8feb54d51b8482.html 打开SCI影响因子查询数据库(ISI)后,出现如下界面,根据下图所示 ...

最新文章

  1. 奖学金申请 | 2019年清华-青岛数据科学研究院​“RONG”奖学金申请通知
  2. Windows Small Business Server 2003 意外关闭 ; 1001, 1013 和 1014 事件记录
  3. Linux 文本界面转到图形界面
  4. 时间串变成Date类型的数据
  5. 使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件
  6. 中国联通与小米深度联动 联合推出Wi-Fi 6路由器AX3600
  7. 三种主流的Kubernetes部署方式
  8. Nginx内置模块简介
  9. 洛谷——P1914 小书童——凯撒密码
  10. AtCoder Grand Contest 025 B - RGB Coloring
  11. Win7下如何显示文件的扩展名?
  12. IOS开发之——屏幕适配-AutoLayout动画(05)
  13. python怎么查找word文档,Python读取word文档内容
  14. 基于elementui的年月日周时间控件
  15. 用两个栈实现队列(Java)
  16. vmware 文件夹共享
  17. 数字化闯入“深水区”,超级营销平台是突破口吗?
  18. python四则运算完整代码_2/20Python之四则运算
  19. springboot文件上传 Required request part 'file' is not present
  20. Read-olny file system-mysql建表不成功

热门文章

  1. 对学生成绩表按计算机应用成绩排序,计算机等级考试EXCEL练习题-12学生成绩表2...
  2. java 后台线程作用_Java 后台线程介绍
  3. 车险赔付率分析报告_车险综合改革出台:下调附加费用率,三者限额提至千万...
  4. 5导出word_重磅更新 !支持题库导出为word
  5. c语言case两个变量的组合,我可以使用带有两个变量的case/switch语句吗?
  6. n平方的求和公式_高中数学:数列求和及数列的综合应用,掌握常见模型
  7. 希尔排序python 简书_数据结构_排序_直接插入+希尔排序
  8. plsql口令过期_Oracle 11g中密码过期问题详解
  9. JDBC开发之数据库连接池
  10. Android 屏幕适配资料汇总