diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/GlobalSearchCriteriaTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/GlobalSearchCriteriaTranslator.java index d39126898a4bf661c7d7507ca355cb04edb1f640..c31f20025beb91e7d5b2b59eea9830e90c63566b 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/GlobalSearchCriteriaTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/GlobalSearchCriteriaTranslator.java @@ -25,6 +25,15 @@ public class GlobalSearchCriteriaTranslator public static final String IDENTIFIER_ALIAS = "identifier"; + public static final String HEADLINE_ALIAS_SUFFIX = "_headline"; + + private static final String START_SEL = "<{("; + + private static final String STOP_SEL = ")}>"; + + private static final String TS_HEADLINE_OPTIONS = "HighlightAll=TRUE, StartSel=" + START_SEL + +", StopSel=" + STOP_SEL; + private GlobalSearchCriteriaTranslator() { throw new UnsupportedOperationException(); @@ -115,11 +124,16 @@ public class GlobalSearchCriteriaTranslator sqlBuilder.append(TS_RANK).append(LP).append(MAIN_TABLE_ALIAS).append(PERIOD).append(TSVECTOR_DOCUMENT).append(COMMA).append(SP); buildTsQueryPart(sqlBuilder, value, args); - sqlBuilder.append(RP).append(SP).append(RANK_ALIAS)/*.append(COMMA).append(SP)*/; + sqlBuilder.append(RP).append(SP).append(RANK_ALIAS).append(COMMA).append(SP); // sqlBuilder.append(QU).append(SP).append(SEARCH_STRING_ALIAS).append(NL); // args.add(value); + sqlBuilder.append(TS_HEADLINE).append(LP).append(MAIN_TABLE_ALIAS).append(PERIOD).append(CODE_COLUMN).append(COMMA).append(SP); + buildTsQueryPart(sqlBuilder, value, args); + sqlBuilder.append(COMMA).append(SP).append(SQ).append(TS_HEADLINE_OPTIONS).append(SQ).append(RP).append(SP) + .append(CODE_COLUMN).append(HEADLINE_ALIAS_SUFFIX); + sqlBuilder.append(NL); // FROM diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/SQLLexemes.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/SQLLexemes.java index 05d0071e82dd0b6b96e4766ee7ecfa4b3acad9a1..3068cd0aaff0cf521d586b70b576de360402295c 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/SQLLexemes.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/SQLLexemes.java @@ -31,6 +31,8 @@ public class SQLLexemes public static final String TO_TSQUERY = "to_tsquery"; + public static final String TS_HEADLINE = "ts_headline"; + public static final String PLAINTO_TSQUERY = "plainto_tsquery"; public static final String NUMERIC = "numeric";