@Override public String toString() { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < fields.length; i++) { buffer.append(fields[i].toString()); if ((i+1) < fields.length) buffer.append(','); } return buffer.toString(); }
@Override public Explanation explain(IndexSearcher searcher, Explanation firstPassExplanation, int docID) throws IOException { TopDocs oneHit = new TopDocs(1, new ScoreDoc[] {new ScoreDoc(docID, firstPassExplanation.getValue())}); TopDocs hits = rescore(searcher, oneHit, 1); assert hits.totalHits == 1; List<Explanation> subs = new ArrayList<>(); // Add first pass: Explanation first = Explanation.match(firstPassExplanation.getValue(), "first pass score", firstPassExplanation); subs.add(first); FieldDoc fieldDoc = (FieldDoc) hits.scoreDocs[0]; // Add sort values: SortField[] sortFields = sort.getSort(); for(int i=0;i<sortFields.length;i++) { subs.add(Explanation.match(0.0f, "sort field " + sortFields[i].toString() + " value=" + fieldDoc.fields[i])); } // TODO: if we could ask the Sort to explain itself then // we wouldn't need the separate ExpressionRescorer... return Explanation.match(0.0f, "sort field values for sort=" + sort.toString(), subs); } }
@Override public String toString() { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < fields.length; i++) { buffer.append(fields[i].toString()); if ((i+1) < fields.length) buffer.append(','); } return buffer.toString(); }
public String toString() { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < fields.length; i++) { buffer.append(fields[i].toString()); if ((i+1) < fields.length) buffer.append(','); } return buffer.toString(); } }
@Override public String toString() { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < fields.length; i++) { buffer.append(fields[i].toString()); if ((i+1) < fields.length) buffer.append(','); } return buffer.toString(); }
public String toString() { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < fields.length; i++) { buffer.append(fields[i].toString()); if ((i +1) < fields.length) buffer.append(','); } return buffer.toString(); } }
@Override public String toString() { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < fields.length; i++) { buffer.append(fields[i].toString()); if ((i+1) < fields.length) buffer.append(','); } return buffer.toString(); }
public String toString() { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < fields.length; i++) { buffer.append(fields[i].toString()); if ((i+1) < fields.length) buffer.append(','); } return buffer.toString(); } }
@Override public Explanation explain(IndexSearcher searcher, Explanation firstPassExplanation, int docID) throws IOException { TopDocs oneHit = new TopDocs(1, new ScoreDoc[] {new ScoreDoc(docID, firstPassExplanation.getValue())}); TopDocs hits = rescore(searcher, oneHit, 1); assert hits.totalHits == 1; List<Explanation> subs = new ArrayList<>(); // Add first pass: Explanation first = Explanation.match(firstPassExplanation.getValue(), "first pass score", firstPassExplanation); subs.add(first); FieldDoc fieldDoc = (FieldDoc) hits.scoreDocs[0]; // Add sort values: SortField[] sortFields = sort.getSort(); for(int i=0;i<sortFields.length;i++) { subs.add(Explanation.match(0.0f, "sort field " + sortFields[i].toString() + " value=" + fieldDoc.fields[i])); } // TODO: if we could ask the Sort to explain itself then // we wouldn't need the separate ExpressionRescorer... return Explanation.match(0.0f, "sort field values for sort=" + sort.toString(), subs); } }
@Override public Explanation explain(IndexSearcher searcher, Explanation firstPassExplanation, int docID) throws IOException { TopDocs oneHit = new TopDocs(1, new ScoreDoc[] {new ScoreDoc(docID, firstPassExplanation.getValue())}); TopDocs hits = rescore(searcher, oneHit, 1); assert hits.totalHits == 1; List<Explanation> subs = new ArrayList<>(); // Add first pass: Explanation first = Explanation.match(firstPassExplanation.getValue(), "first pass score", firstPassExplanation); subs.add(first); FieldDoc fieldDoc = (FieldDoc) hits.scoreDocs[0]; // Add sort values: SortField[] sortFields = sort.getSort(); for(int i=0;i<sortFields.length;i++) { subs.add(Explanation.match(0.0f, "sort field " + sortFields[i].toString() + " value=" + fieldDoc.fields[i])); } // TODO: if we could ask the Sort to explain itself then // we wouldn't need the separate ExpressionRescorer... return Explanation.match(0.0f, "sort field values for sort=" + sort.toString(), subs); } }
@Override public Explanation explain(IndexSearcher searcher, Explanation firstPassExplanation, int docID) throws IOException { TopDocs oneHit = new TopDocs(1, new ScoreDoc[] {new ScoreDoc(docID, firstPassExplanation.getValue())}); TopDocs hits = rescore(searcher, oneHit, 1); assert hits.totalHits == 1; List<Explanation> subs = new ArrayList<>(); // Add first pass: Explanation first = Explanation.match(firstPassExplanation.getValue(), "first pass score", firstPassExplanation); subs.add(first); FieldDoc fieldDoc = (FieldDoc) hits.scoreDocs[0]; // Add sort values: SortField[] sortFields = sort.getSort(); for(int i=0;i<sortFields.length;i++) { subs.add(Explanation.match(0.0f, "sort field " + sortFields[i].toString() + " value=" + fieldDoc.fields[i])); } // TODO: if we could ask the Sort to explain itself then // we wouldn't need the separate ExpressionRescorer... return Explanation.match(0.0f, "sort field values for sort=" + sort.toString(), subs); } }