Shorten docFreq and totalTermFreq to df and ttf in TermsComponent

This commit is contained in:
Shai Erera 2017-04-20 15:32:27 +03:00
parent 19bcffa036
commit 08f2de6d1a
3 changed files with 34 additions and 33 deletions

View File

@ -41,10 +41,10 @@ import java.util.regex.Pattern;
/**
* Return TermEnum information, useful for things like auto suggest.
*
*
* <pre class="prettyprint">
* &lt;searchComponent name="termsComponent" class="solr.TermsComponent"/&gt;
*
*
* &lt;requestHandler name="/terms" class="solr.SearchHandler"&gt;
* &lt;lst name="defaults"&gt;
* &lt;bool name="terms"&gt;true&lt;/bool&gt;
@ -248,7 +248,7 @@ public class TermsComponent extends SearchComponent {
if (sort) {
for (CountPair<BytesRef, Integer> item : queue) {
if (i >= limit) break;
ft.indexedToReadable(item.key, external);
ft.indexedToReadable(item.key, external);
fieldTerms.add(external.toString(), item.val);
i++;
}
@ -384,11 +384,11 @@ public class TermsComponent extends SearchComponent {
}
TermsResponse termsResponse = new TermsResponse(terms);
// loop though each field and add each term+freq to map
for (String key : fieldmap.keySet()) {
HashMap<String, TermsResponse.Term> termmap = fieldmap.get(key);
List<TermsResponse.Term> termlist = termsResponse.getTerms(key);
List<TermsResponse.Term> termlist = termsResponse.getTerms(key);
// skip this field if there are no terms
if (termlist == null) {
@ -459,8 +459,8 @@ public class TermsComponent extends SearchComponent {
if (tc.getFrequency() >= freqmin && tc.getFrequency() <= freqmax) {
if (includeTotalTermFreq) {
NamedList<Number> termStats = new SimpleOrderedMap<>();
termStats.add("docFreq", tc.getFrequency());
termStats.add("totalTermFreq", tc.getTotalTermFreq());
termStats.add("df", tc.getFrequency());
termStats.add("ttf", tc.getTotalTermFreq());
fieldterms.add(tc.getTerm(), termStats);
} else {
fieldterms.add(tc.getTerm(), num(tc.getFrequency()));
@ -515,7 +515,7 @@ public class TermsComponent extends SearchComponent {
}
}
private static void fetchTerms(SolrIndexSearcher indexSearcher, String[] fields, String termList,
private static void fetchTerms(SolrIndexSearcher indexSearcher, String[] fields, String termList,
boolean includeTotalTermFreq, NamedList<Object> result) throws IOException {
String[] splitTerms = termList.split(",");
for (int i = 0; i < splitTerms.length; i++) {
@ -547,8 +547,8 @@ public class TermsComponent extends SearchComponent {
} else {
long totalTermFreq = termContexts[i].totalTermFreq();
NamedList<Long> termStats = new SimpleOrderedMap<>();
termStats.add("docFreq", (long) docFreq);
termStats.add("totalTermFreq", totalTermFreq);
termStats.add("df", (long) docFreq);
termStats.add("ttf", totalTermFreq);
termsMap.add(outTerm, termStats);
}
}

View File

@ -326,14 +326,14 @@ public class TermsComponentTest extends SolrTestCaseJ4 {
"terms.list", "snake,spider,shark,ddddd");
assertQ(req,
"count(//lst[@name='standardfilt']/*)=4",
"//lst[@name='standardfilt']/lst[@name='ddddd']/long[@name='docFreq'][.='4']",
"//lst[@name='standardfilt']/lst[@name='ddddd']/long[@name='totalTermFreq'][.='4']",
"//lst[@name='standardfilt']/lst[@name='shark']/long[@name='docFreq'][.='2']",
"//lst[@name='standardfilt']/lst[@name='shark']/long[@name='totalTermFreq'][.='2']",
"//lst[@name='standardfilt']/lst[@name='snake']/long[@name='docFreq'][.='3']",
"//lst[@name='standardfilt']/lst[@name='snake']/long[@name='totalTermFreq'][.='3']",
"//lst[@name='standardfilt']/lst[@name='spider']/long[@name='docFreq'][.='1']",
"//lst[@name='standardfilt']/lst[@name='spider']/long[@name='totalTermFreq'][.='1']");
"//lst[@name='standardfilt']/lst[@name='ddddd']/long[@name='df'][.='4']",
"//lst[@name='standardfilt']/lst[@name='ddddd']/long[@name='ttf'][.='4']",
"//lst[@name='standardfilt']/lst[@name='shark']/long[@name='df'][.='2']",
"//lst[@name='standardfilt']/lst[@name='shark']/long[@name='ttf'][.='2']",
"//lst[@name='standardfilt']/lst[@name='snake']/long[@name='df'][.='3']",
"//lst[@name='standardfilt']/lst[@name='snake']/long[@name='ttf'][.='3']",
"//lst[@name='standardfilt']/lst[@name='spider']/long[@name='df'][.='1']",
"//lst[@name='standardfilt']/lst[@name='spider']/long[@name='ttf'][.='1']");
}
@Test
@ -347,8 +347,8 @@ public class TermsComponentTest extends SolrTestCaseJ4 {
"terms.list", "boo,snake");
assertQ(req,
"count(//lst[@name='standardfilt']/*)=1",
"//lst[@name='standardfilt']/lst[@name='snake']/long[@name='docFreq'][.='3']",
"//lst[@name='standardfilt']/lst[@name='snake']/long[@name='totalTermFreq'][.='3']");
"//lst[@name='standardfilt']/lst[@name='snake']/long[@name='df'][.='3']",
"//lst[@name='standardfilt']/lst[@name='snake']/long[@name='ttf'][.='3']");
}
@Test
@ -364,18 +364,18 @@ public class TermsComponentTest extends SolrTestCaseJ4 {
assertQ(req,
"count(//lst[@name='lowerfilt']/*)=3",
"count(//lst[@name='standardfilt']/*)=3",
"//lst[@name='lowerfilt']/lst[@name='a']/long[@name='docFreq'][.='2']",
"//lst[@name='lowerfilt']/lst[@name='a']/long[@name='totalTermFreq'][.='2']",
"//lst[@name='lowerfilt']/lst[@name='aa']/long[@name='docFreq'][.='1']",
"//lst[@name='lowerfilt']/lst[@name='aa']/long[@name='totalTermFreq'][.='1']",
"//lst[@name='lowerfilt']/lst[@name='aaa']/long[@name='docFreq'][.='1']",
"//lst[@name='lowerfilt']/lst[@name='aaa']/long[@name='totalTermFreq'][.='1']",
"//lst[@name='standardfilt']/lst[@name='a']/long[@name='docFreq'][.='1']",
"//lst[@name='standardfilt']/lst[@name='a']/long[@name='totalTermFreq'][.='1']",
"//lst[@name='standardfilt']/lst[@name='aa']/long[@name='docFreq'][.='1']",
"//lst[@name='standardfilt']/lst[@name='aa']/long[@name='totalTermFreq'][.='1']",
"//lst[@name='standardfilt']/lst[@name='aaa']/long[@name='docFreq'][.='1']",
"//lst[@name='standardfilt']/lst[@name='aaa']/long[@name='totalTermFreq'][.='1']");
"//lst[@name='lowerfilt']/lst[@name='a']/long[@name='df'][.='2']",
"//lst[@name='lowerfilt']/lst[@name='a']/long[@name='ttf'][.='2']",
"//lst[@name='lowerfilt']/lst[@name='aa']/long[@name='df'][.='1']",
"//lst[@name='lowerfilt']/lst[@name='aa']/long[@name='ttf'][.='1']",
"//lst[@name='lowerfilt']/lst[@name='aaa']/long[@name='df'][.='1']",
"//lst[@name='lowerfilt']/lst[@name='aaa']/long[@name='ttf'][.='1']",
"//lst[@name='standardfilt']/lst[@name='a']/long[@name='df'][.='1']",
"//lst[@name='standardfilt']/lst[@name='a']/long[@name='ttf'][.='1']",
"//lst[@name='standardfilt']/lst[@name='aa']/long[@name='df'][.='1']",
"//lst[@name='standardfilt']/lst[@name='aa']/long[@name='ttf'][.='1']",
"//lst[@name='standardfilt']/lst[@name='aaa']/long[@name='df'][.='1']",
"//lst[@name='standardfilt']/lst[@name='aaa']/long[@name='ttf'][.='1']");
}
}

View File

@ -15,6 +15,7 @@
* limitations under the License.
*/
package org.apache.solr.client.solrj.response;
import org.apache.solr.common.util.NamedList;
import java.util.ArrayList;
@ -41,7 +42,7 @@ public class TermsResponse {
if (val instanceof NamedList) {
@SuppressWarnings("unchecked")
NamedList<Number> termStats = (NamedList<Number>) val;
t = new Term(term, termStats.get("docFreq").longValue(), termStats.get("totalTermFreq").longValue());
t = new Term(term, termStats.get("df").longValue(), termStats.get("ttf").longValue());
} else {
t = new Term(term, ((Number) val).longValue());
}