From 068f9501a6ffc5e3f340f142ba5fa4de5be888d3 Mon Sep 17 00:00:00 2001 From: Viktor Kovtun <viktor.kovtun@id.ethz.ch> Date: Fri, 17 Apr 2020 16:23:59 +0200 Subject: [PATCH] SSDM-9369 Working on determining the position of the matches inside the results. --- .../GlobalSearchCriteriaTranslator.java | 16 +++++++++++++++- .../asapi/v3/search/translator/SQLLexemes.java | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) 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 d39126898a4..c31f20025be 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 05d0071e82d..3068cd0aaff 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"; -- GitLab