⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 submissionreport.java

📁 Lucene a java open-source SearchEngine Framework
💻 JAVA
字号:
/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.lucene.benchmark.quality.utils;import java.io.IOException;import java.io.PrintWriter;import java.text.NumberFormat;import org.apache.lucene.benchmark.quality.QualityQuery;import org.apache.lucene.search.ScoreDoc;import org.apache.lucene.search.Searcher;import org.apache.lucene.search.TopDocs;/** * Create a log ready for submission. * Extend this class and override * {@link #report(QualityQuery, TopDocs, String, Searcher)} * to create different reports.  */public class SubmissionReport {  private NumberFormat nf;  private PrintWriter logger;  private String name;    /**   * Constructor for SubmissionReport.   * @param logger if null, no submission data is created.    * @param name name of this run.   */  public SubmissionReport (PrintWriter logger, String name) {    this.logger = logger;    this.name = name;    nf = NumberFormat.getInstance();    nf.setMaximumFractionDigits(4);    nf.setMinimumFractionDigits(4);  }    /**   * Report a search result for a certain quality query.   * @param qq quality query for which the results are reported.   * @param td search results for the query.   * @param docNameField stored field used for fetching the result doc name.     * @param searcher index access for fetching doc name.   * @throws IOException in case of a problem.   */  public void report(QualityQuery qq, TopDocs td, String docNameField, Searcher searcher) throws IOException {    if (logger==null) {      return;    }    ScoreDoc sd[] = td.scoreDocs;    String sep = " \t ";    DocNameExtractor xt = new DocNameExtractor(docNameField);    for (int i=0; i<sd.length; i++) {      String docName = xt.docName(searcher,sd[i].doc);      logger.println(          qq.getQueryID()       + sep +          "Q0"                   + sep +          format(docName,20)    + sep +          format(""+i,7)        + sep +          nf.format(sd[i].score) + sep +          name          );    }  }  public void flush() {    if (logger!=null) {      logger.flush();    }  }    private static String padd = "                                    ";  private String format(String s, int minLen) {    s = (s==null ? "" : s);    int n = Math.max(minLen,s.length());    return (s+padd).substring(0,n);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -