`

十六、搜索排序

 
阅读更多

public void searcherBySort(String queryStr,Sort sort) {
        try {
            IndexSearcher searcher = getSearcher();
            QueryParser parser = new QueryParser(Version.LUCENE_35,"content",new StandardAnalyzer(Version.LUCENE_35));
            Query query = parser.parse(queryStr);
            TopDocs tds = null;
            if(sort!=null)
               
tds = searcher.search(query, 50, sort);
            else {
                tds = searcher.search(query, 50);
            }
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            for(ScoreDoc sd:tds.scoreDocs) {
                Document d = searcher.doc(sd.doc);
                System.out.println(sd.doc+":("+sd.score+")" +
                        "["+d.get("filename")+"【"+d.get("path")+"】---"+d.get("score")+"--->"+
                        d.get("size")+"-----"+sdf.format(new Date(Long.valueOf(d.get("date"))))+"]");
            }
            searcher.close();
        } catch (NumberFormatException e) {
            e.printStackTrace();
        } catch (CorruptIndexException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }



public void test01() {
        //Sort.INDEXORDER通过doc的id进行排序
        st.searcherBySort("java", Sort.INDEXORDER);
       
        //使用默认的评分排序
        //st.seacher("java", Sort.RELEVANCE);
        //st.seacher("java", null);
       
        //通过文件的大小排序
        st.searcherBySort("java", new Sort(new SortField("size", SortField.INT)));
        //通过日期排序
        //st.searcherBySort("java",new Sort(new SortField("date",SortField.LONG)));
        //通过文件名排序
        //st.searcherBySort("java", new Sort(new SortField("filename", SortField.STRING)));
       
        //通过设置SortField最后一个参数设置是否反转排序
        //st.searcherBySort("java", new Sort(new SortField("filename", SortField.STRING,true)));
       
        //使用多个SortField进行排序
        st.searcherBySort("java", new Sort(new SortField("size", SortField.INT),
            SortField.FIELD_SCORE));
    }

分享到:
评论

相关推荐

    Chapter9 内部排序-补充外排1

    此外,内部排序算法也可以用于解决搜索引擎的返回结果排序问题,如Google、Baidu等搜索引擎的返回结果排序。 在内部排序算法中,排序码是一个非常重要的概念,它是将待排序的数据元素按照某个特定的属性域进行排序...

    汉字与unicode编码(十六进制)对照表

    这对于处理中文文本的搜索、排序、比较和解码等工作是至关重要的。 对于HTML文档,如“CSDNBlog.htm”这样的文件,可能会包含这些对照表的内容,便于网页开发者查看和使用。而“CSDNBlog.files”可能是与该网页相关...

    十六进制编辑器程序

    6. **算法和数据结构**:分析源代码中使用的搜索、排序或其他算法,以及如何使用适当的数据结构来优化性能。 7. **软件工程实践**:观察源代码的组织结构,学习良好的编程习惯,如注释、命名规范、模块化设计和错误...

    十六个常用算法源码 C#源码

    1. **插入排序**:插入排序是一种简单直观的排序算法,它的工作原理是通过构造一个有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。此算法在C#中实现通常包括一个循环,每次将未排序的...

    易语言源码易语言十六进制编辑源码.rar

    8. **算法与数据结构**:在实现搜索、替换等功能时,可能会用到查找算法或排序算法,源码中可能包含这些算法的实现。 9. **调试与优化**:源码可能会包含调试信息和性能优化的技巧,如日志记录、代码性能分析等。 ...

    十六进制编辑工具WinHex

    5. **搜索与替换**:支持在大量数据中进行高级搜索,包括二进制模式匹配,以及可选的替换操作。 6. **字节排序**:可以对选定的数据范围进行升序或降序排列,便于数据分析。 7. **计算校验和**:提供多种校验和和...

    常用功能汇编语言代码汇总,例如:ASCII转换,浮点操作,网络,字符串,排序等

    64 位整数转换为十进制 ASCIIZ 字符串,阻止多个实例,重新排序任务栏项,在屏幕上居中窗口,终止 TCP 连接,IPADDR 和 PORTNR 宏,搜索InString,IsExtensionInList,wsprintf_sci,多字符串替换,十六进制 ASCIIZ ...

    数据结构课程设计源代码及实验报告

    1. 迷宫问题:这是一个经典的图论问题,通常通过深度优先搜索(DFS)或广度优先搜索(BFS)来解决。在迷宫中,每个节点代表一个位置,边表示相邻的位置,目标是找到从起点到终点的路径。在实现过程中,可能会用到栈(DFS...

    算法导论答案

    - **9.3-1 至 9.3-9** 详细讲解了深度优先搜索(DFS)和广度优先搜索(BFS)两种遍历算法。 ### 第15章: 动态规划 #### 15.1: 最长公共子序列 **15.1-1 至 15.1-5** - 最长公共子序列问题是动态规划的一个经典例子。 -...

    湖南大学数据结构实验代码(十六个实验,全部代码,可以参考

    5. **排序与查找**:快速排序、归并排序、堆排序、冒泡排序和插入排序等是常见的排序算法。查找算法包括顺序查找、二分查找、哈希查找等,它们对算法效率有显著影响。 6. **哈希表**:哈希表提供近乎常数时间的查找...

    [精品]WINDOWS7下文件,文件夹不能随意排序怎么办?.doc

    忽略它,然后在空白区域右键单击,选择“新建”->“DWORD(32-位)值(D)”,创建新的DWORD值并命名为“FFlags”,然后双击进行编辑,将基数设置为“十六进制”,在“数值数据”中输入`43000001`,点击“确定”。...

    内存搜索工具

    4. 数据过滤与排序:内存搜索结果通常会很庞大,工具提供过滤和排序功能,使得用户能快速聚焦到感兴趣的数据。 5. 持久性操作:内存搜索工具可以保存搜索结果,方便后续再次查看或分析。有些工具还能保存内存快照,...

    E:\压缩包\算法资料包ggfyyghhy

    2. 搜索算法:例如二分查找、深度优先搜索(DFS)、广度优先搜索(BFS)等,用于在数据结构中寻找特定元素或遍历结构。 3. 图论算法:如最短路径算法(Dijkstra、Floyd-Warshall)、最小生成树(Prim、Kruskal)等...

    jquery插件特效(十六)

    `jquery div拖动排序效果代码`提供了可拖动排序的div元素,这对于需要用户自定义顺序的列表,如任务管理器、购物车或者菜单配置等场景非常实用。 `-b-js实现密封飞行效果--b-`虽然名称不清晰,但可以推测这可能是一...

    Java数据库结构与算法窗台

    在实际开发中,Java提供了丰富的数据结构,如数组、链表、栈、队列、集合、映射等,以及各种排序和搜索算法,这些都是构建高效数据库系统的关键工具。掌握这些基本概念和技巧,能够提升开发者设计和实现复杂逻辑的...

    江苏省信息学竞赛用算法介绍.doc

    5. **排序算法**:掌握常见的排序算法,如选择排序、冒泡排序、插入排序、希尔排序和归并排序,以及快速排序的基本思想。快速排序是一种高效的内部排序算法,通过分治策略实现。 6. **排列组合**:能够编写通用的...

    C语言程序设计课程设计题目.pdf

    我们可以使用栈作为辅助数据结构,采用深度优先搜索(DFS)或广度优先搜索(BFS)的方法。非递归程序可以通过手动管理栈来实现路径探索,而递归程序则可以直接利用函数调用栈。在输出结果时,迷宫及其通路应以矩阵...

    211和985-计算机考研复试上机题常考题汇总.zip

    - 进制转换是编程基础,包括二进制、八进制、十进制、十六进制之间的转换。1080进制可能是一种特殊设定,但基本思想是理解不同进制的表示和转换规则,通过除法和取余操作实现。 2. 简单计算器:1019简单计算器.cpp...

    完整的 优秀的 数据结构课程设计

    3. **进制转换**:进制转换是计算机科学的基础,涉及到二进制、八进制、十进制和十六进制之间的转换。理解这些转换对于处理二进制数据(如计算机内存、文件格式)至关重要。例如,可以用位运算进行二进制与十进制...

Global site tag (gtag.js) - Google Analytics