`
liulanghan110
  • 浏览: 1072445 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

lucene排序

阅读更多

只需要在查询的同时传入排序字段,

 

对单个字段排序:

Sort sort=new Sort(new SortField("price", Type.DOUBLE,false));//false为降序排列

 

对多个字段排序:

Sort sort=new Sort(new SortField("date", Type.INT, true),new SortField("ename", Type.STRING, false));

 

 

代码如下:

 /**
     * 多条件查询
     * @param path 索引文件路径
     * @param query 查询条件
     * @param sort 排序
     * @return 
     */
    public List<Document> complexSearch(String path,BooleanQuery query,Sort sort) {
        List<Document> docList = new ArrayList<>();
        try {
            directory = FSDirectory.open(new File(path));//打开索引文件夹  
            IndexReader reader = DirectoryReader.open(directory);//读取目录  
            IndexSearcher search = new IndexSearcher(reader);//初始化查询组件  
            TopDocs td ;
            if(sort != null){
                td = search.search(query, 10000,sort);//获取匹配上元素的一个docid 
            }else{
                td = search.search(query, 10000);//获取匹配上元素的一个docid         
            }
             
            for (ScoreDoc doc : td.scoreDocs) {
                docList.add(search.doc(doc.doc));
            }
            reader.close();//关闭资源  
            directory.close();//关闭连接  
        } catch (IOException e) {
        }
        return docList;
    }

 

注意几点 
(1)排序对一个文档里什么域都没存储,使用字符串排序会排在首位 
(2)排序对一个文档里什么域都没存储,使用数字类型排序会默认给其赋值为0进行排序 
(3)我们可以对数字类型的null值的文档进行代码控制,可以将其设置为最大,所以将会排在最后面,代码如下


  SortField sortField = new SortField("value", SortField.Type.INT);

  sortField.setMissingValue(Integer.MAX_VALUE);

 

 

lucene也可以自定义排序,这里没有给子例子

分享到:
评论

相关推荐

    lucene排序.zip

    《深入理解Lucene排序机制:从关键词频率到自定义优先级》 在信息检索领域,Lucene是一个广泛使用的全文搜索引擎库。它提供了强大的文本分析、索引和搜索功能,而排序作为搜索结果的重要组成部分,是Lucene的一个...

    lucene排序、设置权重、优化、分布式搜索.pdf

    Lucene 排序、设置权重、优化、分布式搜索 Lucene 是一个高性能的搜索引擎库,它提供了强大的文本搜索和索引能力。下面我们将详细介绍 Lucene 的排序、设置权重、优化和分布式搜索等知识点。 一、Lucene 排序 ...

    深入了解Lucene之三 排序算法.doc

    深入了解 Lucene 之三排序算法 Lucene 排序算法是搜索引擎中的核心组件之一,负责将搜索结果按照相关度排序以便用户快速找到所需信息。 Lucene 的排序算法主要基于 tf-idf 模型,以下是 Lucene 排序算法的详细介绍...

    lucene的排序过滤和分页.zip

    本资料主要探讨了Lucene中的排序、过滤和分页技术,这些都是构建高效、实用的信息检索系统的重要组成部分。 **排序(Sorting)** 排序是Lucene中的一项核心功能,允许我们根据文档的某个或多个字段来对搜索结果...

    Lucene4.X实战类baidu搜索的大型文档海量搜索系统-18.Lucene排序 共6页.pptx

    《Lucene4.X实战:构建类百度搜索的大型文档海量搜索系统——排序篇》 在搜索引擎的世界里,正确的排序机制是提升用户体验的关键因素之一。Apache Lucene,作为一款强大的全文检索库,提供了丰富的功能,包括对搜索...

    lucene自定义排序实现

    因此,了解如何在 Lucene 中实现自定义排序是非常关键的。在这个话题中,我们将深入探讨如何根据特定的业务需求对搜索结果进行定制排序。 首先,我们要明白 Lucene 默认的排序机制。默认情况下,Lucene 搜索结果是...

    Lucene0之结果排序.pdf

    向量空间模型是Lucene排序算法的基础,由Gerald Salton等人在30多年前提出。该模型假设文档和查询的相关性可以通过它们共有的词汇来衡量。经典的TF-IDF(词频-逆文档频率)公式用于计算词项权重。文档d和查询q的...

    lucene可视化工具 Luck-6.5.0

    4. **文档评分**:Luck 显示每个匹配文档的评分,这是 Lucene 排序算法的结果,展示了文档与查询的相关性。 5. **元数据查看**:用户可以查看索引的元数据,如文档总数、字段列表、分段信息等,这些信息对于分析...

    Lucene5学习之自定义排序

    本文将深入探讨“Lucene5学习之自定义排序”这一主题,帮助你理解如何在Lucene5中实现自定义的排序规则。 首先,Lucene的核心功能之一就是提供高效的全文检索能力,但默认的搜索结果排序通常是基于相关度得分...

    基于Lucene的医疗搜索引擎排序算法的研究.pdf

    实验结果显示,这种方法能提升Lucene排序算法的查准率10%至20%。 【关键词】涉及的几个核心概念包括: 1. 向量空间模型(Vector Space Model,VSM):这是信息检索中的一种模型,通过将文档和查询表示为高维向量来...

    lucene4.3 按坐标距离排序

    在"lucene4.3 按坐标距离排序"这个主题中,我们将探讨如何在Lucene 4.3版本中利用地理位置信息进行文档排序,特别是在处理地理空间搜索时的应用。 首先,Lucene 4.3引入了对地理空间搜索的支持,这允许我们根据地理...

    Lucene4.X实战类baidu搜索的大型文档海量搜索系统-17.Lucene高级进阶3 共4页.pptx

    5. **Lucene排序**: Lucene允许根据指定字段进行结果排序,通过`Sort`对象可以定制排序规则,比如按照相关度、时间等进行排序。这在提供个性化搜索体验时尤其重要。 6. **过滤与筛选**: 除了基本的查询,Lucene...

    Lucene5学习之排序-Sort

    “Lucene5学习之排序-Sort”这个标题表明了我们要探讨的是关于Apache Lucene 5版本中的排序功能。Lucene是一个高性能、全文检索库,它提供了强大的文本搜索能力。在这个主题中,我们将深入理解如何在Lucene 5中对...

    深入理解Luncen搜索引擎开发

    Lucene是一个高性能、可伸缩的信息搜索(IR)库。它可以为你的应用程序添加索引和搜索能力。Lucene是用java实现的、成熟的开源项目,是著名的Apache Jakarta大家庭的一员,并且基于...Lucene排序 Lucene过滤 Lucene分词器

    Luncene学习资料

    【Lucene 排序】在Lucene中,排序是通过实现`Sort`类或使用`SortField`对象来完成的。排序不仅可以基于文档的分数(即查询的相关性),还可以基于文档的字段值。例如,你可以根据文档的创建日期、作者名或其他自定义...

    java Lucene 中自定义排序的实现

    Lucene中的自定义排序功能和Java集合中的自定义排序的实现方法差不多,都要实现一下比较接口. 在Java中只要实现Comparable接口就可以了.但是在Lucene中要实现SortComparatorSource接口和ScoreDocComparator接口.在...

    SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--news.part2

    SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...

    SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--dic

    SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...

Global site tag (gtag.js) - Google Analytics