1

SearchRequestBuilder に setFilter() があるように、CountRequestBuilder にフィルターを設定する方法はありますか。このため、私は CountRequestBuilder を使用できず、以下のように使用しています

SearchRequestBuilder searchBuilder = client.prepareSearch(indexName).setTypes(typeName).setSearchType(SearchType.DFS_QUERY_THEN_FETCH).setExplain(true);           
SearchResponse response = searchBuilder.execute().actionGet();
Long count = response.getHits().getTotalHits();

検索フィルターの数を取得する他の方法はありますか?

4

1 に答える 1

2

トップ レベル フィルターは、対応するファセットをフィルター処理せずに結果をフィルター処理するなど、いくつかの特定のケースでのみ使用する必要がある特別な構造です。したがって、この問題を解決する最善の方法は、最上位のフィルターを に置き換えることQueryBuilders.filteredQuery(...)です。SearchType.COUNTまたは、の代わりに使用SearchType.DFS_QUERY_THEN_FETCHして、カウントだけを取得することもできます。

于 2013-08-20T19:45:55.160 に答える