+++ /dev/null
-/**
- * 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;
-
-import java.util.Map;
-
-/**
- * A QualityQuery has an ID and some name-value pairs.
- * <p>
- * The ID allows to map the quality query with its judgements.
- * <p>
- * The name-value pairs are used by a
- * {@link org.apache.lucene.benchmark.quality.QualityQueryParser}
- * to create a Lucene {@link org.apache.lucene.search.Query}.
- * <p>
- * It is very likely that name-value-pairs would be mapped into fields in a Lucene query,
- * but it is up to the QualityQueryParser how to map - e.g. all values in a single field,
- * or each pair as its own field, etc., - and this of course must match the way the
- * searched index was constructed.
- */
-public class QualityQuery implements Comparable<QualityQuery> {
- private String queryID;
- private Map<String,String> nameValPairs;
-
- /**
- * Create a QualityQuery with given ID and name-value pairs.
- * @param queryID ID of this quality query.
- * @param nameValPairs the contents of this quality query.
- */
- public QualityQuery(String queryID, Map<String,String> nameValPairs) {
- this.queryID = queryID;
- this.nameValPairs = nameValPairs;
- }
-
- /**
- * Return all the names of name-value-pairs in this QualityQuery.
- */
- public String[] getNames() {
- return nameValPairs.keySet().toArray(new String[0]);
- }
-
- /**
- * Return the value of a certain name-value pair.
- * @param name the name whose value should be returned.
- */
- public String getValue(String name) {
- return nameValPairs.get(name);
- }
-
- /**
- * Return the ID of this query.
- * The ID allows to map the quality query with its judgements.
- */
- public String getQueryID() {
- return queryID;
- }
-
- /* for a nicer sort of input queries before running them.
- * Try first as ints, fall back to string if not int. */
- public int compareTo(QualityQuery other) {
- try {
- // compare as ints when ids ints
- int n = Integer.parseInt(queryID);
- int nOther = Integer.parseInt(other.queryID);
- return n - nOther;
- } catch (NumberFormatException e) {
- // fall back to string comparison
- return queryID.compareTo(other.queryID);
- }
- }
-
-}