用户特定数据的Solr结果过滤器

时间:2013-06-03 15:31:47

标签: solr filter

我想操纵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列表,或者您是否知道更好的解决方案?

0 个答案:

没有答案