您当前的位置: 首页 >  搜索

无花果有果

暂无认证

  • 1浏览

    0关注

    28博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Lucene搜索过程测试

无花果有果 发布时间:2022-05-28 17:04:41 ,浏览量:1

IndexSearcher搜索方法如下:

  1. indexSearcher.search(query, n) 根据Query搜索,返回评分最高的n条记录
  2. indexSearcher.search(query, filter, n) 根据Query搜索,添加过滤策略,返回评分最高的n条 记录
  3. indexSearcher.search(query, n, sort) 根据Query搜索,添加排序策略,返回评分最高的n条 记录
  4. indexSearcher.search(booleanQuery, filter, n, sort) 根据Query搜索,添加过滤策略,添加排序策略,返 回评分最高的n条记录
@Test
    void testIndexSearch() throws ParseException, IOException {
        //1.创建分词器(对搜索的关键词进行分词使用)
        //注意:分词器要和创建索引的适合使用的分词器相同
        Analyzer analyzer = new StandardAnalyzer();
        //2.创建查询对象,第一个参数:默认查询域,如果查询的关键字中带搜索的域名,则从指定域中查询,如果不带域名则从,默认搜索域中查询
        //第二个参数:使用的分词器
        QueryParser queryParser = new QueryParser("title",analyzer);
        //3.设置搜索关键词
        Query  query = queryParser.parse("java");
        //4.创建Directory目录对象,指定索引库的位置
        Directory dir = FSDirectory.open(Paths.get("E:\\luceneJdDir"));
        //5.创建输入流对象
        IndexReader indexReader = DirectoryReader.open(dir);
        //6.创建搜索对象
        IndexSearcher indexSearcher = new IndexSearcher(indexReader);
        //7.搜索,并返回结果
        //第二个参数:是返回多少条数据用于展示,分页使用
        TopDocs topDocs = indexSearcher.search(query,10);
        //获取查询到的结果集的总数
        System.out.println("======count======"+topDocs.totalHits);
        //8.获取结果集
        ScoreDoc[] scoreDocs = topDocs.scoreDocs;
        //9.遍历结果集
        if(Objects.nonNull(scoreDocs)){
            for(ScoreDoc scoreDoc: scoreDocs){
                //获取查询到的文档唯一标识,文档id,这个id是Lucene在创建文档的时候自动分配的
                int docId =scoreDoc.doc;
                //通过文档id,读取文档
                Document doc = indexSearcher.doc(docId);
                //通过域名,从文档中获取域值
                System.out.println("===title==="+doc.get("title"));
                System.out.println("===img==="+doc.get("img"));
                System.out.println("===price==="+doc.get("price"));
            }
        }
        //10.关闭流
        indexReader.close();
    }
关注
打赏
1653747677
查看更多评论
立即登录/注册

微信扫码登录

0.0409s