Как мне загрузить одновременно много файлов в облачные файлы с помощью Python?

Я использую Solrs TermsComponent для реализации функции автозаполнения. Мои документы содержат теги, которые я проиндексировал в поле "теги". Теперь я могу использовать TermsComponent, чтобы узнать, какие теги используются во всех сохраненных документах. Пока это работает очень хорошо.

Однако есть некоторые дополнительные требования: у каждого документа есть поле владельца, которое содержит идентификатор пользователя, которому он принадлежит. Список автозаполнения должен содержать только теги из документов, которые фактически принадлежат пользователю, запрашивающему автозаполнение.

Я попытался установить параметр запроса, однако это, похоже, игнорируется компонентом условий:

public static List<String> findUniqueTags(String beginningWith, User owner) throws IOException {
    SolrParams q = new SolrQuery().setQueryType("/terms")
            .setQuery("owner:" + owner.id.toString())
            .set(TermsParams.TERMS, true).set(TermsParams.TERMS_FIELD, "tags")
            .set(TermsParams.TERMS_LOWER, beginningWith)
            .set(TermsParams.TERMS_LOWER_INCLUSIVE, false)
            .set(TermsParams.TERMS_PREFIX_STR, beginningWith);
    QueryResponse queryResponse;
    try {
        queryResponse = getSolrServer().query(q);
    } catch (SolrServerException e) {
        Logger.error(e, "Error when querying server.");
        throw new IOException(e);
    }

    NamedList tags = (NamedList) ((NamedList)queryResponse.getResponse().get("terms")).get("tags");

    List<String> result = new ArrayList<String>();
    for (Iterator iterator = tags.iterator(); iterator.hasNext();) {
        Map.Entry tag = (Map.Entry) iterator.next();
        result.add(tag.getKey().toString());
    }
    return result;
}

Так есть ли способ ограничения тегов, возвращаемых TermsComponent, или мне нужно вручную запрашивать все теги пользователя и фильтровать их самостоятельно?

7
задан Aza 14 April 2013 в 23:42
поделиться