Solr lucene ResponseBuilder getFilters对int字段类型的编码错误

Solr lucene ResponseBuilder getFilters对int字段类型的编码错误,solr,lucene,Solr,Lucene,我得到了solr“int”字段类型的奇怪值。当列出ResponseBuilder过滤器时,我得到的countryId值如下。请注意,outletId字段的类型为String。这个问题发生在Solr模式中具有“int”类型的每个字段上 List filters=rb.getFilters(); 设置curTerms=null; 对于(查询q:filters){ curTerms=newhashset(); q、 提取条款(简写); (任期:短期){ System.out.println(ter

我得到了solr“int”字段类型的奇怪值。当列出ResponseBuilder过滤器时,我得到的countryId值如下。请注意,outletId字段的类型为String。这个问题发生在Solr模式中具有“int”类型的每个字段上


List filters=rb.getFilters();
设置curTerms=null;
对于(查询q:filters){
curTerms=newhashset();
q、 提取条款(简写);
(任期:短期){
System.out.println(term.field()+“=”+term.bytes().utf8ToString());
}
}
知道是什么导致了这个问题吗

使用term.bytes()得到的是该术语的原始二进制表示形式。如果您可以将其转换为字符串相关字段的文本,则永远不会出现这种情况。 要显示术语,应首先将其原始值转换为整数,然后再尝试将其转换为字符串

你可能想看看 用于将字节[]转换为整数

要检索字节数组,term.bytes()。字节应与技巧一致

此外,term.bytes().utf8ToString()与term.text()等效

<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>


 List<Query> filters = rb.getFilters();
 Set<Term> curTerms = null;
 for (Query q : filters) {              
  curTerms = new HashSet<Term>();
  q.extractTerms(curTerms);             
  for (Term term : curTerms) {                  
   System.out.println(term.field() + " = " + term.bytes().utf8ToString());
  }
 }