Kaoru FUZITA 9 jaren geleden
bovenliggende
commit
d662083eef
1 gewijzigde bestanden met toevoegingen van 61 en 56 verwijderingen
  1. 61 56
      src/main/java/org/codelibs/fess/helper/QueryHelper.java

+ 61 - 56
src/main/java/org/codelibs/fess/helper/QueryHelper.java

@@ -142,22 +142,24 @@ public class QueryHelper implements Serializable {
     @PostConstruct
     @PostConstruct
     public void init() {
     public void init() {
         if (responseFields == null) {
         if (responseFields == null) {
-            responseFields = new String[] { SCORE_FIELD, fessConfig.getIndexFieldId(), fessConfig.getIndexFieldDocId(),
-                    fessConfig.getIndexFieldBoost(), fessConfig.getIndexFieldContentLength(), fessConfig.getIndexFieldHost(),
-                    fessConfig.getIndexFieldSite(), fessConfig.getIndexFieldLastModified(), fessConfig.getIndexFieldTimestamp(),
-                    fessConfig.getIndexFieldMimetype(), fessConfig.getIndexFieldFiletype(), fessConfig.getIndexFieldCreated(),
-                    fessConfig.getIndexFieldTitle(), fessConfig.getIndexFieldDigest(), fessConfig.getIndexFieldUrl(),
-                    fessConfig.getIndexFieldClickCount(), fessConfig.getIndexFieldFavoriteCount(), fessConfig.getIndexFieldConfigId(),
-                    fessConfig.getIndexFieldLang(), fessConfig.getIndexFieldHasCache() };
+            responseFields =
+                    new String[] { SCORE_FIELD, fessConfig.getIndexFieldId(), fessConfig.getIndexFieldDocId(),
+                            fessConfig.getIndexFieldBoost(), fessConfig.getIndexFieldContentLength(), fessConfig.getIndexFieldHost(),
+                            fessConfig.getIndexFieldSite(), fessConfig.getIndexFieldLastModified(), fessConfig.getIndexFieldTimestamp(),
+                            fessConfig.getIndexFieldMimetype(), fessConfig.getIndexFieldFiletype(), fessConfig.getIndexFieldCreated(),
+                            fessConfig.getIndexFieldTitle(), fessConfig.getIndexFieldDigest(), fessConfig.getIndexFieldUrl(),
+                            fessConfig.getIndexFieldClickCount(), fessConfig.getIndexFieldFavoriteCount(),
+                            fessConfig.getIndexFieldConfigId(), fessConfig.getIndexFieldLang(), fessConfig.getIndexFieldHasCache() };
         }
         }
         if (cacheResponseFields == null) {
         if (cacheResponseFields == null) {
-            cacheResponseFields = new String[] { SCORE_FIELD, fessConfig.getIndexFieldId(), fessConfig.getIndexFieldDocId(),
-                    fessConfig.getIndexFieldBoost(), fessConfig.getIndexFieldContentLength(), fessConfig.getIndexFieldHost(),
-                    fessConfig.getIndexFieldSite(), fessConfig.getIndexFieldLastModified(), fessConfig.getIndexFieldTimestamp(),
-                    fessConfig.getIndexFieldMimetype(), fessConfig.getIndexFieldFiletype(), fessConfig.getIndexFieldCreated(),
-                    fessConfig.getIndexFieldTitle(), fessConfig.getIndexFieldDigest(), fessConfig.getIndexFieldUrl(),
-                    fessConfig.getIndexFieldClickCount(), fessConfig.getIndexFieldFavoriteCount(), fessConfig.getIndexFieldConfigId(),
-                    fessConfig.getIndexFieldLang(), fessConfig.getIndexFieldCache() };
+            cacheResponseFields =
+                    new String[] { SCORE_FIELD, fessConfig.getIndexFieldId(), fessConfig.getIndexFieldDocId(),
+                            fessConfig.getIndexFieldBoost(), fessConfig.getIndexFieldContentLength(), fessConfig.getIndexFieldHost(),
+                            fessConfig.getIndexFieldSite(), fessConfig.getIndexFieldLastModified(), fessConfig.getIndexFieldTimestamp(),
+                            fessConfig.getIndexFieldMimetype(), fessConfig.getIndexFieldFiletype(), fessConfig.getIndexFieldCreated(),
+                            fessConfig.getIndexFieldTitle(), fessConfig.getIndexFieldDigest(), fessConfig.getIndexFieldUrl(),
+                            fessConfig.getIndexFieldClickCount(), fessConfig.getIndexFieldFavoriteCount(),
+                            fessConfig.getIndexFieldConfigId(), fessConfig.getIndexFieldLang(), fessConfig.getIndexFieldCache() };
         }
         }
         if (responseDocValuesFields == null) {
         if (responseDocValuesFields == null) {
             responseDocValuesFields = new String[] { fessConfig.getIndexFieldClickCount(), fessConfig.getIndexFieldFavoriteCount() };
             responseDocValuesFields = new String[] { fessConfig.getIndexFieldClickCount(), fessConfig.getIndexFieldFavoriteCount() };
@@ -166,31 +168,35 @@ public class QueryHelper implements Serializable {
             highlightedFields = new String[] { fessConfig.getIndexFieldContent() };
             highlightedFields = new String[] { fessConfig.getIndexFieldContent() };
         }
         }
         if (searchFields == null) {
         if (searchFields == null) {
-            searchFields = new String[] { INURL_FIELD, fessConfig.getIndexFieldUrl(), fessConfig.getIndexFieldDocId(),
-                    fessConfig.getIndexFieldHost(), fessConfig.getIndexFieldTitle(), fessConfig.getIndexFieldContent(),
-                    fessConfig.getIndexFieldContentLength(), fessConfig.getIndexFieldLastModified(), fessConfig.getIndexFieldTimestamp(),
-                    fessConfig.getIndexFieldMimetype(), fessConfig.getIndexFieldFiletype(), fessConfig.getIndexFieldLabel(),
-                    fessConfig.getIndexFieldSegment(), fessConfig.getIndexFieldClickCount(), fessConfig.getIndexFieldFavoriteCount(),
-                    fessConfig.getIndexFieldLang() };
+            searchFields =
+                    new String[] { INURL_FIELD, fessConfig.getIndexFieldUrl(), fessConfig.getIndexFieldDocId(),
+                            fessConfig.getIndexFieldHost(), fessConfig.getIndexFieldTitle(), fessConfig.getIndexFieldContent(),
+                            fessConfig.getIndexFieldContentLength(), fessConfig.getIndexFieldLastModified(),
+                            fessConfig.getIndexFieldTimestamp(), fessConfig.getIndexFieldMimetype(), fessConfig.getIndexFieldFiletype(),
+                            fessConfig.getIndexFieldLabel(), fessConfig.getIndexFieldSegment(), fessConfig.getIndexFieldClickCount(),
+                            fessConfig.getIndexFieldFavoriteCount(), fessConfig.getIndexFieldLang() };
         }
         }
         if (facetFields == null) {
         if (facetFields == null) {
-            facetFields = new String[] { fessConfig.getIndexFieldUrl(), fessConfig.getIndexFieldHost(), fessConfig.getIndexFieldTitle(),
-                    fessConfig.getIndexFieldContent(), fessConfig.getIndexFieldContentLength(), fessConfig.getIndexFieldLastModified(),
-                    fessConfig.getIndexFieldTimestamp(), fessConfig.getIndexFieldMimetype(), fessConfig.getIndexFieldFiletype(),
-                    fessConfig.getIndexFieldLabel(), fessConfig.getIndexFieldSegment() };
+            facetFields =
+                    new String[] { fessConfig.getIndexFieldUrl(), fessConfig.getIndexFieldHost(), fessConfig.getIndexFieldTitle(),
+                            fessConfig.getIndexFieldContent(), fessConfig.getIndexFieldContentLength(),
+                            fessConfig.getIndexFieldLastModified(), fessConfig.getIndexFieldTimestamp(),
+                            fessConfig.getIndexFieldMimetype(), fessConfig.getIndexFieldFiletype(), fessConfig.getIndexFieldLabel(),
+                            fessConfig.getIndexFieldSegment() };
         }
         }
         if (supportedSortFields == null) {
         if (supportedSortFields == null) {
-            supportedSortFields = new String[] { fessConfig.getIndexFieldCreated(), fessConfig.getIndexFieldContentLength(),
-                    fessConfig.getIndexFieldLastModified(), fessConfig.getIndexFieldTimestamp(), fessConfig.getIndexFieldClickCount(),
-                    fessConfig.getIndexFieldFavoriteCount() };
+            supportedSortFields =
+                    new String[] { fessConfig.getIndexFieldCreated(), fessConfig.getIndexFieldContentLength(),
+                            fessConfig.getIndexFieldLastModified(), fessConfig.getIndexFieldTimestamp(),
+                            fessConfig.getIndexFieldClickCount(), fessConfig.getIndexFieldFavoriteCount() };
         }
         }
         if (apiResponseFieldSet == null) {
         if (apiResponseFieldSet == null) {
-            setApiResponseFields(
-                    new String[] { "urlLink", "contentDescription", fessConfig.getIndexFieldId(), fessConfig.getIndexFieldDocId(),
-                            fessConfig.getIndexFieldBoost(), fessConfig.getIndexFieldContentLength(), fessConfig.getIndexFieldHost(),
-                            fessConfig.getIndexFieldSite(), fessConfig.getIndexFieldLastModified(), fessConfig.getIndexFieldTimestamp(),
-                            fessConfig.getIndexFieldMimetype(), fessConfig.getIndexFieldFiletype(), fessConfig.getIndexFieldCreated(),
-                            fessConfig.getIndexFieldTitle(), fessConfig.getIndexFieldDigest(), fessConfig.getIndexFieldUrl() });
+            setApiResponseFields(new String[] { "urlLink", "contentDescription", fessConfig.getIndexFieldId(),
+                    fessConfig.getIndexFieldDocId(), fessConfig.getIndexFieldBoost(), fessConfig.getIndexFieldContentLength(),
+                    fessConfig.getIndexFieldHost(), fessConfig.getIndexFieldSite(), fessConfig.getIndexFieldLastModified(),
+                    fessConfig.getIndexFieldTimestamp(), fessConfig.getIndexFieldMimetype(), fessConfig.getIndexFieldFiletype(),
+                    fessConfig.getIndexFieldCreated(), fessConfig.getIndexFieldTitle(), fessConfig.getIndexFieldDigest(),
+                    fessConfig.getIndexFieldUrl() });
         }
         }
     }
     }
 
 
@@ -341,8 +347,8 @@ public class QueryHelper implements Serializable {
         // TODO fuzzy value
         // TODO fuzzy value
         if (Constants.DEFAULT_FIELD.equals(field)) {
         if (Constants.DEFAULT_FIELD.equals(field)) {
             context.addFieldLog(field, term.text());
             context.addFieldLog(field, term.text());
-            return buildDefaultQueryBuilder(
-                    (f, b) -> QueryBuilders.fuzzyQuery(f, term.text()).fuzziness(Fuzziness.fromEdits(fuzzyQuery.getMaxEdits())).boost(b));
+            return buildDefaultQueryBuilder((f, b) -> QueryBuilders.fuzzyQuery(f, term.text())
+                    .fuzziness(Fuzziness.fromEdits(fuzzyQuery.getMaxEdits())).boost(b));
         } else if (isSearchField(field)) {
         } else if (isSearchField(field)) {
             context.addFieldLog(field, term.text());
             context.addFieldLog(field, term.text());
             return QueryBuilders.fuzzyQuery(field, term.text()).boost(fuzzyQuery.getBoost())
             return QueryBuilders.fuzzyQuery(field, term.text()).boost(fuzzyQuery.getBoost())
@@ -351,8 +357,8 @@ public class QueryHelper implements Serializable {
             final String origQuery = fuzzyQuery.toString();
             final String origQuery = fuzzyQuery.toString();
             context.addFieldLog(Constants.DEFAULT_FIELD, origQuery);
             context.addFieldLog(Constants.DEFAULT_FIELD, origQuery);
             context.addHighlightedQuery(origQuery);
             context.addHighlightedQuery(origQuery);
-            return buildDefaultQueryBuilder(
-                    (f, b) -> QueryBuilders.fuzzyQuery(f, origQuery).fuzziness(Fuzziness.fromEdits(fuzzyQuery.getMaxEdits())).boost(b));
+            return buildDefaultQueryBuilder((f, b) -> QueryBuilders.fuzzyQuery(f, origQuery)
+                    .fuzziness(Fuzziness.fromEdits(fuzzyQuery.getMaxEdits())).boost(b));
         }
         }
     }
     }
 
 
@@ -397,23 +403,20 @@ public class QueryHelper implements Serializable {
         } else if ("sort".equals(field)) {
         } else if ("sort".equals(field)) {
             final String[] values = text.split("\\.");
             final String[] values = text.split("\\.");
             if (values.length > 2) {
             if (values.length > 2) {
-                throw new InvalidQueryException(
-                        messages -> messages.addErrorsInvalidQuerySortValue(ActionMessages.GLOBAL_PROPERTY_KEY, text),
-                        "Invalid sort field: " + termQuery);
+                throw new InvalidQueryException(messages -> messages.addErrorsInvalidQuerySortValue(ActionMessages.GLOBAL_PROPERTY_KEY,
+                        text), "Invalid sort field: " + termQuery);
             }
             }
             final String sortField = values[0];
             final String sortField = values[0];
             if (!isSortField(sortField)) {
             if (!isSortField(sortField)) {
-                throw new InvalidQueryException(
-                        messages -> messages.addErrorsInvalidQueryUnsupportedSortField(ActionMessages.GLOBAL_PROPERTY_KEY, sortField),
-                        "Unsupported sort field: " + termQuery);
+                throw new InvalidQueryException(messages -> messages.addErrorsInvalidQueryUnsupportedSortField(
+                        ActionMessages.GLOBAL_PROPERTY_KEY, sortField), "Unsupported sort field: " + termQuery);
             }
             }
             SortOrder sortOrder;
             SortOrder sortOrder;
             if (values.length == 2) {
             if (values.length == 2) {
                 sortOrder = SortOrder.valueOf(values[1]);
                 sortOrder = SortOrder.valueOf(values[1]);
                 if (sortOrder == null) {
                 if (sortOrder == null) {
-                    throw new InvalidQueryException(
-                            messages -> messages.addErrorsInvalidQueryUnsupportedSortOrder(ActionMessages.GLOBAL_PROPERTY_KEY, values[1]),
-                            "Invalid sort order: " + termQuery);
+                    throw new InvalidQueryException(messages -> messages.addErrorsInvalidQueryUnsupportedSortOrder(
+                            ActionMessages.GLOBAL_PROPERTY_KEY, values[1]), "Invalid sort order: " + termQuery);
                 }
                 }
             } else {
             } else {
                 sortOrder = SortOrder.ASC;
                 sortOrder = SortOrder.ASC;
@@ -451,14 +454,17 @@ public class QueryHelper implements Serializable {
         final QueryBuilder contentQuery =
         final QueryBuilder contentQuery =
                 builder.apply(fessConfig.getIndexFieldContent(), fessConfig.getQueryBoostContentAsDecimal().floatValue());
                 builder.apply(fessConfig.getIndexFieldContent(), fessConfig.getQueryBoostContentAsDecimal().floatValue());
         boolQuery.should(contentQuery);
         boolQuery.should(contentQuery);
-        getQueryLanguage().ifPresent(lang -> {
-            final QueryBuilder titleLangQuery =
-                    builder.apply(fessConfig.getIndexFieldTitle() + "_" + lang, fessConfig.getQueryBoostTitleLangAsDecimal().floatValue());
-            boolQuery.should(titleLangQuery);
-            final QueryBuilder contentLangQuery = builder.apply(fessConfig.getIndexFieldContent() + "_" + lang,
-                    fessConfig.getQueryBoostContentLangAsDecimal().floatValue());
-            boolQuery.should(contentLangQuery);
-        });
+        getQueryLanguage().ifPresent(
+                lang -> {
+                    final QueryBuilder titleLangQuery =
+                            builder.apply(fessConfig.getIndexFieldTitle() + "_" + lang, fessConfig.getQueryBoostTitleLangAsDecimal()
+                                    .floatValue());
+                    boolQuery.should(titleLangQuery);
+                    final QueryBuilder contentLangQuery =
+                            builder.apply(fessConfig.getIndexFieldContent() + "_" + lang, fessConfig.getQueryBoostContentLangAsDecimal()
+                                    .floatValue());
+                    boolQuery.should(contentLangQuery);
+                });
         return boolQuery;
         return boolQuery;
     }
     }
 
 
@@ -711,8 +717,7 @@ public class QueryHelper implements Serializable {
         if (defaultSortBuilders != null) {
         if (defaultSortBuilders != null) {
             StreamUtil.of(defaultSortBuilders).forEach(builder -> list.add(builder));
             StreamUtil.of(defaultSortBuilders).forEach(builder -> list.add(builder));
         }
         }
-        list.add(
-                SortBuilders.fieldSort(fieldName).order(SortOrder.ASC.toString().equalsIgnoreCase(order) ? SortOrder.ASC : SortOrder.DESC));
+        list.add(SortBuilders.fieldSort(fieldName).order(SortOrder.ASC.toString().equalsIgnoreCase(order) ? SortOrder.ASC : SortOrder.DESC));
         defaultSortBuilders = list.toArray(new SortBuilder[list.size()]);
         defaultSortBuilders = list.toArray(new SortBuilder[list.size()]);
     }
     }