|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright 2012-2016 CodeLibs Project and the Others.
|
|
|
+ * Copyright 2012-2017 CodeLibs Project and the Others.
|
|
|
*
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
* you may not use this file except in compliance with the License.
|
|
@@ -216,42 +216,50 @@ public class SearchService {
|
|
|
|
|
|
public OptionalEntity<Map<String, Object>> getDocumentByDocId(final String docId, final String[] fields,
|
|
|
final OptionalThing<FessUserBean> userBean) {
|
|
|
- return fessEsClient.getDocument(fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType(), builder -> {
|
|
|
- BoolQueryBuilder boolQuery = QueryBuilders.boolQuery().must(QueryBuilders.termQuery(fessConfig.getIndexFieldDocId(), docId));
|
|
|
- final Set<String> roleSet = ComponentUtil.getRoleQueryHelper().build(SearchRequestType.JSON); // TODO SearchRequestType?
|
|
|
- if (!roleSet.isEmpty()) {
|
|
|
- final BoolQueryBuilder roleQuery = QueryBuilders.boolQuery();
|
|
|
- roleSet.stream().forEach(name -> {
|
|
|
- roleQuery.should(QueryBuilders.termQuery(fessConfig.getIndexFieldRole(), name));
|
|
|
- });
|
|
|
- boolQuery.filter(roleQuery);
|
|
|
- }
|
|
|
- builder.setQuery(boolQuery);
|
|
|
- builder.setFetchSource(fields, null);
|
|
|
- fessConfig.processSearchPreference(builder, userBean);
|
|
|
- return true;
|
|
|
- });
|
|
|
+ return fessEsClient.getDocument(
|
|
|
+ fessConfig.getIndexDocumentSearchIndex(),
|
|
|
+ fessConfig.getIndexDocumentType(),
|
|
|
+ builder -> {
|
|
|
+ final BoolQueryBuilder boolQuery =
|
|
|
+ QueryBuilders.boolQuery().must(QueryBuilders.termQuery(fessConfig.getIndexFieldDocId(), docId));
|
|
|
+ final Set<String> roleSet = ComponentUtil.getRoleQueryHelper().build(SearchRequestType.JSON); // TODO SearchRequestType?
|
|
|
+ if (!roleSet.isEmpty()) {
|
|
|
+ final BoolQueryBuilder roleQuery = QueryBuilders.boolQuery();
|
|
|
+ roleSet.stream().forEach(name -> {
|
|
|
+ roleQuery.should(QueryBuilders.termQuery(fessConfig.getIndexFieldRole(), name));
|
|
|
+ });
|
|
|
+ boolQuery.filter(roleQuery);
|
|
|
+ }
|
|
|
+ builder.setQuery(boolQuery);
|
|
|
+ builder.setFetchSource(fields, null);
|
|
|
+ fessConfig.processSearchPreference(builder, userBean);
|
|
|
+ return true;
|
|
|
+ });
|
|
|
|
|
|
}
|
|
|
|
|
|
public List<Map<String, Object>> getDocumentListByDocIds(final String[] docIds, final String[] fields,
|
|
|
final OptionalThing<FessUserBean> userBean) {
|
|
|
- return fessEsClient.getDocumentList(fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType(), builder -> {
|
|
|
- BoolQueryBuilder boolQuery = QueryBuilders.boolQuery().must(QueryBuilders.termsQuery(fessConfig.getIndexFieldDocId(), docIds));
|
|
|
- final Set<String> roleSet = ComponentUtil.getRoleQueryHelper().build(SearchRequestType.JSON); // TODO SearchRequestType?
|
|
|
- if (!roleSet.isEmpty()) {
|
|
|
- final BoolQueryBuilder roleQuery = QueryBuilders.boolQuery();
|
|
|
- roleSet.stream().forEach(name -> {
|
|
|
- roleQuery.should(QueryBuilders.termQuery(fessConfig.getIndexFieldRole(), name));
|
|
|
- });
|
|
|
- boolQuery.filter(roleQuery);
|
|
|
- }
|
|
|
- builder.setQuery(boolQuery);
|
|
|
- builder.setSize(fessConfig.getPagingSearchPageMaxSizeAsInteger().intValue());
|
|
|
- builder.setFetchSource(fields, null);
|
|
|
- fessConfig.processSearchPreference(builder, userBean);
|
|
|
- return true;
|
|
|
- });
|
|
|
+ return fessEsClient.getDocumentList(
|
|
|
+ fessConfig.getIndexDocumentSearchIndex(),
|
|
|
+ fessConfig.getIndexDocumentType(),
|
|
|
+ builder -> {
|
|
|
+ final BoolQueryBuilder boolQuery =
|
|
|
+ QueryBuilders.boolQuery().must(QueryBuilders.termsQuery(fessConfig.getIndexFieldDocId(), docIds));
|
|
|
+ final Set<String> roleSet = ComponentUtil.getRoleQueryHelper().build(SearchRequestType.JSON); // TODO SearchRequestType?
|
|
|
+ if (!roleSet.isEmpty()) {
|
|
|
+ final BoolQueryBuilder roleQuery = QueryBuilders.boolQuery();
|
|
|
+ roleSet.stream().forEach(name -> {
|
|
|
+ roleQuery.should(QueryBuilders.termQuery(fessConfig.getIndexFieldRole(), name));
|
|
|
+ });
|
|
|
+ boolQuery.filter(roleQuery);
|
|
|
+ }
|
|
|
+ builder.setQuery(boolQuery);
|
|
|
+ builder.setSize(fessConfig.getPagingSearchPageMaxSizeAsInteger().intValue());
|
|
|
+ builder.setFetchSource(fields, null);
|
|
|
+ fessConfig.processSearchPreference(builder, userBean);
|
|
|
+ return true;
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
public boolean update(final String id, final String field, final Object value) {
|