我想操纵solr服务器搜索的结果。我不认为它可能在服务器端过滤器上,因为该信息仅在运行时在客户端提供。
我试过以下:
private void filterKernSortiment ( SolrDocumentList docsList )
{
List<SolrDocument> filteredItems = new ArrayList<SolrDocument>();
Iterator<SolrDocument> iter = docsList.iterator();
while ( iter.hasNext() )
{
SolrDocument doc = iter.next();
String artnr = doc.getFieldValue( "artnr" ).toString();
String lfnt = doc.getFieldValue( "lfnt" ).toString();
if ( ! user.isForUserInStock( artnr, lfnt ) )
{
filteredItems.add( doc );
}
}
log.debug( "filteredItems=" + filteredItems.size() );
Iterator<SolrDocument> iterFilter = filteredItems.iterator();
while ( iterFilter.hasNext() )
{
SolrDocument doc = iterFilter.next();
docsList.remove( doc );
}
}
SolrDocumentList已正确过滤,但getFacetField函数提供未过滤的SolrDocumentList的结果。 我是否也必须操纵FacetField列表,或者您是否知道更好的解决方案?