com.liferay.portal.kernel.search.QueryConfig Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.portal.kernel Show documentation
Show all versions of com.liferay.portal.kernel Show documentation
Contains interfaces for the portal services. Interfaces are only loaded by the global class loader and are shared by all plugins.
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.portal.kernel.search;
import com.liferay.portal.kernel.util.ArrayUtil;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.LocaleUtil;
import com.liferay.portal.kernel.util.PropsKeys;
import com.liferay.portal.kernel.util.PropsUtil;
import com.liferay.portal.kernel.util.SetUtil;
import com.liferay.portal.kernel.util.StringPool;
import java.io.Serializable;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
/**
* @author Michael C. Han
*/
public class QueryConfig implements Serializable {
public static final String LOCALE = "locale";
public static final String SEARCH_SUBFOLDERS = "search.subfolders";
public void addHighlightFieldNames(String... highlightFieldNames) {
Set highlightFieldNamesSet = SetUtil.fromArray(
(String[])_attributes.get(_HIGHLIGHT_FIELD_NAMES));
highlightFieldNamesSet.addAll(Arrays.asList(highlightFieldNames));
_attributes.put(
_HIGHLIGHT_FIELD_NAMES,
highlightFieldNamesSet.toArray(
new String[highlightFieldNamesSet.size()]));
}
public void addSelectedFieldNames(String... selectedFieldNames) {
Set selectedFieldNamesSet = SetUtil.fromArray(
(String[])_attributes.get(_SELECTED_FIELD_NAMES));
selectedFieldNamesSet.addAll(Arrays.asList(selectedFieldNames));
_attributes.put(
_SELECTED_FIELD_NAMES,
selectedFieldNamesSet.toArray(
new String[selectedFieldNamesSet.size()]));
}
public String getAlternateUidFieldName() {
return (String)_attributes.get(_ALTERNATE_UID_FIELD_NAME);
}
public Serializable getAttribute(String name) {
return _attributes.get(name);
}
public Map getAttributes() {
return _attributes;
}
public int getCollatedSpellCheckResultScoresThreshold() {
return GetterUtil.getInteger(
_attributes.get(
PropsKeys.
INDEX_SEARCH_COLLATED_SPELL_CHECK_RESULT_SCORES_THRESHOLD),
_INDEX_SEARCH_COLLATED_SPELL_CHECK_RESULT_SCORES_THRESHOLD);
}
public String[] getHighlightFieldNames() {
String[] highlightFieldNames = (String[])_attributes.get(
_HIGHLIGHT_FIELD_NAMES);
if (highlightFieldNames != null) {
return highlightFieldNames;
}
return StringPool.EMPTY_ARRAY;
}
public int getHighlightFragmentSize() {
return GetterUtil.getInteger(
_attributes.get(PropsKeys.INDEX_SEARCH_HIGHLIGHT_FRAGMENT_SIZE),
_INDEX_SEARCH_HIGHLIGHT_FRAGMENT_SIZE);
}
public int getHighlightSnippetSize() {
return GetterUtil.getInteger(
_attributes.get(PropsKeys.INDEX_SEARCH_HIGHLIGHT_SNIPPET_SIZE),
_INDEX_SEARCH_HIGHLIGHT_SNIPPET_SIZE);
}
public Locale getLocale() {
Locale locale = (Locale)_attributes.get(LOCALE);
if (locale == null) {
locale = LocaleUtil.getMostRelevantLocale();
}
return locale;
}
public int getQueryIndexingThreshold() {
return GetterUtil.getInteger(
_attributes.get(PropsKeys.INDEX_SEARCH_QUERY_INDEXING_THRESHOLD),
_INDEX_SEARCH_QUERY_INDEXING_THRESHOLD);
}
public int getQuerySuggestionMax() {
return GetterUtil.getInteger(
_attributes.get(PropsKeys.INDEX_SEARCH_QUERY_SUGGESTION_MAX),
_INDEX_SEARCH_QUERY_SUGGESTION_MAX);
}
public int getQuerySuggestionScoresThreshold() {
return GetterUtil.getInteger(
_attributes.get(
PropsKeys.INDEX_SEARCH_QUERY_SUGGESTION_SCORES_THRESHOLD),
_INDEX_SEARCH_QUERY_SUGGESTION_SCORES_THRESHOLD);
}
public String[] getSelectedFieldNames() {
String[] selectedFieldNames = (String[])_attributes.get(
_SELECTED_FIELD_NAMES);
if (ArrayUtil.isEmpty(selectedFieldNames)) {
return StringPool.EMPTY_ARRAY;
}
return selectedFieldNames;
}
public String[] getSelectedIndexNames() {
String[] selectedIndexNames = (String[])_attributes.get(
_SELECTED_INDEX_NAMES);
if (ArrayUtil.isEmpty(selectedIndexNames)) {
return StringPool.EMPTY_ARRAY;
}
return selectedIndexNames;
}
public String[] getSelectedTypes() {
String[] selectedTypes = (String[])_attributes.get(_SELECTED_TYPES);
if (ArrayUtil.isEmpty(selectedTypes)) {
return StringPool.EMPTY_ARRAY;
}
return selectedTypes;
}
public boolean isAllFieldsSelected() {
String[] selectedFieldNames = getSelectedFieldNames();
if (ArrayUtil.isEmpty(selectedFieldNames)) {
return true;
}
if ((selectedFieldNames.length == 1) &&
selectedFieldNames[0].equals(Field.ANY)) {
return true;
}
return false;
}
public boolean isCollatedSpellCheckResultEnabled() {
return GetterUtil.getBoolean(
_attributes.get(
PropsKeys.INDEX_SEARCH_COLLATED_SPELL_CHECK_RESULT_ENABLED),
_INDEX_SEARCH_COLLATED_SPELL_CHECK_RESULT_ENABLED);
}
public boolean isHighlightEnabled() {
return GetterUtil.getBoolean(
_attributes.get(PropsKeys.INDEX_SEARCH_HIGHLIGHT_ENABLED),
_INDEX_SEARCH_HIGHLIGHT_ENABLED);
}
public boolean isHighlightRequireFieldMatch() {
return GetterUtil.getBoolean(
_attributes.get(
PropsKeys.INDEX_SEARCH_HIGHLIGHT_REQUIRE_FIELD_MATCH),
_INDEX_SEARCH_HIGHLIGHT_REQUIRE_FIELD_MATCH);
}
public boolean isHitsProcessingEnabled() {
return GetterUtil.getBoolean(
_attributes.get(_HITS_PROCESSING_ENABLED), true);
}
public boolean isQueryIndexingEnabled() {
return GetterUtil.getBoolean(
_attributes.get(PropsKeys.INDEX_SEARCH_QUERY_INDEXING_ENABLED),
_INDEX_SEARCH_QUERY_INDEXING_ENABLED);
}
public boolean isQuerySuggestionEnabled() {
return GetterUtil.getBoolean(
_attributes.get(PropsKeys.INDEX_SEARCH_QUERY_SUGGESTION_ENABLED),
_INDEX_SEARCH_QUERY_SUGGESTION_ENABLED);
}
public boolean isScoreEnabled() {
return GetterUtil.getBoolean(
_attributes.get(PropsKeys.INDEX_SEARCH_SCORING_ENABLED),
_INDEX_SEARCH_SCORING_ENABLED);
}
public boolean isSearchSubfolders() {
return GetterUtil.getBoolean(_attributes.get(SEARCH_SUBFOLDERS));
}
public Serializable removeAttribute(String name) {
return _attributes.remove(name);
}
public void setAlternateUidFieldName(String name) {
_attributes.put(_ALTERNATE_UID_FIELD_NAME, name);
}
public void setAttribute(String name, Serializable value) {
_attributes.put(name, value);
}
public void setCollatedSpellCheckResultEnabled(
boolean collatedSpellCheckResultEnabled) {
_attributes.put(
PropsKeys.INDEX_SEARCH_COLLATED_SPELL_CHECK_RESULT_ENABLED,
collatedSpellCheckResultEnabled);
}
public void setCollatedSpellCheckResultScoresThreshold(
int collatedSpellCheckResultScoresThreshold) {
_attributes.put(
PropsKeys.
INDEX_SEARCH_COLLATED_SPELL_CHECK_RESULT_SCORES_THRESHOLD,
collatedSpellCheckResultScoresThreshold);
}
public void setHighlightEnabled(boolean highlightEnabled) {
if (_INDEX_SEARCH_HIGHLIGHT_ENABLED) {
_attributes.put(
PropsKeys.INDEX_SEARCH_HIGHLIGHT_ENABLED, highlightEnabled);
}
else {
_attributes.put(PropsKeys.INDEX_SEARCH_HIGHLIGHT_ENABLED, false);
}
}
public void setHighlightFieldNames(String... highlightFieldNames) {
_attributes.put(_HIGHLIGHT_FIELD_NAMES, highlightFieldNames);
}
public void setHighlightFragmentSize(int highlightFragmentSize) {
_attributes.put(
PropsKeys.INDEX_SEARCH_HIGHLIGHT_FRAGMENT_SIZE,
highlightFragmentSize);
}
public void setHighlightRequireFieldMatch(
boolean highlightRequireFieldMatch) {
if (_INDEX_SEARCH_HIGHLIGHT_REQUIRE_FIELD_MATCH) {
_attributes.put(
PropsKeys.INDEX_SEARCH_HIGHLIGHT_REQUIRE_FIELD_MATCH,
highlightRequireFieldMatch);
}
else {
_attributes.put(
PropsKeys.INDEX_SEARCH_HIGHLIGHT_REQUIRE_FIELD_MATCH, false);
}
}
public void setHighlightSnippetSize(int highlightSnippetSize) {
_attributes.put(
PropsKeys.INDEX_SEARCH_HIGHLIGHT_SNIPPET_SIZE,
highlightSnippetSize);
}
public void setHitsProcessingEnabled(boolean hitsProcessingEnabled) {
_attributes.put(_HITS_PROCESSING_ENABLED, hitsProcessingEnabled);
}
public void setLocale(Locale locale) {
_attributes.put(LOCALE, locale);
}
public void setQueryIndexingEnabled(boolean enabled) {
_attributes.put(PropsKeys.INDEX_SEARCH_QUERY_INDEXING_ENABLED, enabled);
}
public void setQueryIndexingThreshold(int queryIndexingThreshold) {
_attributes.put(
PropsKeys.INDEX_SEARCH_QUERY_INDEXING_THRESHOLD,
queryIndexingThreshold);
}
public void setQuerySuggestionEnabled(boolean querySuggestionEnabled) {
_attributes.put(
PropsKeys.INDEX_SEARCH_QUERY_SUGGESTION_ENABLED,
querySuggestionEnabled);
}
public void setQuerySuggestionScoresThreshold(
int querySuggestionScoresThreshold) {
_attributes.put(
PropsKeys.INDEX_SEARCH_QUERY_SUGGESTION_SCORES_THRESHOLD,
querySuggestionScoresThreshold);
}
public void setQuerySuggestionsMax(int querySuggestionMax) {
_attributes.put(
PropsKeys.INDEX_SEARCH_QUERY_SUGGESTION_MAX, querySuggestionMax);
}
public void setScoreEnabled(boolean scoreEnabled) {
_attributes.put(PropsKeys.INDEX_SEARCH_SCORING_ENABLED, scoreEnabled);
}
public void setSearchSubfolders(boolean searchSubfolders) {
_attributes.put(SEARCH_SUBFOLDERS, searchSubfolders);
}
public void setSelectedFieldNames(String... selectedFieldNames) {
_attributes.put(_SELECTED_FIELD_NAMES, selectedFieldNames);
}
public void setSelectedIndexNames(String... selectedIndexNames) {
_attributes.put(_SELECTED_INDEX_NAMES, selectedIndexNames);
}
public void setSelectedTypes(String... selectedTypes) {
_attributes.put(_SELECTED_TYPES, selectedTypes);
}
private static final String _ALTERNATE_UID_FIELD_NAME =
"alternateUidFieldName";
private static final String _HIGHLIGHT_FIELD_NAMES = "highlightFieldNames";
private static final String _HITS_PROCESSING_ENABLED =
"hitsProcessingEnabled";
private static final boolean
_INDEX_SEARCH_COLLATED_SPELL_CHECK_RESULT_ENABLED =
GetterUtil.getBoolean(
PropsUtil.get(
PropsKeys.INDEX_SEARCH_COLLATED_SPELL_CHECK_RESULT_ENABLED),
true);
private static final int
_INDEX_SEARCH_COLLATED_SPELL_CHECK_RESULT_SCORES_THRESHOLD =
GetterUtil.getInteger(
PropsUtil.get(
PropsKeys.
INDEX_SEARCH_COLLATED_SPELL_CHECK_RESULT_SCORES_THRESHOLD),
50);
private static final boolean _INDEX_SEARCH_HIGHLIGHT_ENABLED =
GetterUtil.getBoolean(
PropsUtil.get(PropsKeys.INDEX_SEARCH_HIGHLIGHT_ENABLED));
private static final int _INDEX_SEARCH_HIGHLIGHT_FRAGMENT_SIZE =
GetterUtil.getInteger(
PropsUtil.get(PropsKeys.INDEX_SEARCH_HIGHLIGHT_FRAGMENT_SIZE));
private static final boolean _INDEX_SEARCH_HIGHLIGHT_REQUIRE_FIELD_MATCH =
GetterUtil.getBoolean(
PropsUtil.get(
PropsKeys.INDEX_SEARCH_HIGHLIGHT_REQUIRE_FIELD_MATCH));
private static final int _INDEX_SEARCH_HIGHLIGHT_SNIPPET_SIZE =
GetterUtil.getInteger(
PropsUtil.get(PropsKeys.INDEX_SEARCH_HIGHLIGHT_SNIPPET_SIZE));
private static final boolean _INDEX_SEARCH_QUERY_INDEXING_ENABLED =
GetterUtil.getBoolean(
PropsUtil.get(PropsKeys.INDEX_SEARCH_QUERY_INDEXING_ENABLED), true);
private static final int _INDEX_SEARCH_QUERY_INDEXING_THRESHOLD =
GetterUtil.getInteger(
PropsUtil.get(PropsKeys.INDEX_SEARCH_QUERY_INDEXING_THRESHOLD), 50);
private static final boolean _INDEX_SEARCH_QUERY_SUGGESTION_ENABLED =
GetterUtil.getBoolean(
PropsUtil.get(PropsKeys.INDEX_SEARCH_QUERY_SUGGESTION_ENABLED),
true);
private static final int _INDEX_SEARCH_QUERY_SUGGESTION_MAX =
GetterUtil.getInteger(
PropsUtil.get(PropsKeys.INDEX_SEARCH_QUERY_SUGGESTION_MAX), 5);
private static final int _INDEX_SEARCH_QUERY_SUGGESTION_SCORES_THRESHOLD =
GetterUtil.getInteger(
PropsUtil.get(
PropsKeys.INDEX_SEARCH_QUERY_SUGGESTION_SCORES_THRESHOLD),
50);
private static final boolean _INDEX_SEARCH_SCORING_ENABLED =
GetterUtil.getBoolean(
PropsUtil.get(PropsKeys.INDEX_SEARCH_SCORING_ENABLED));
private static final String _SELECTED_FIELD_NAMES = "selectedFieldNames";
private static final String _SELECTED_INDEX_NAMES = "selectedIndexNames";
private static final String _SELECTED_TYPES = "selectedTypes";
private final Map _attributes = new HashMap<>();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy