Author: ssmiweve Date: 2009-02-23 13:25:04 +0100 (Mon, 23 Feb 2009) New Revision: 7205
Modified: branches/2.18/generic.sesam/query-transform-config/src/main/java/no/sesat/search/query/transform/TermPrefixQueryTransformerConfig.java branches/2.18/generic.sesam/query-transform-control/src/main/java/no/sesat/search/query/transform/TermPrefixQueryTransformer.java Log: * Multiple prefixes can be configured with comma seperation. * EG prefix="site,domain" * By default this writes out (site:term domain:term) * but the joining operator can be configured with #setMultiTermJoin(string) Modified: branches/2.18/generic.sesam/query-transform-config/src/main/java/no/sesat/search/query/transform/TermPrefixQueryTransformerConfig.java =================================================================== --- branches/2.18/generic.sesam/query-transform-config/src/main/java/no/sesat/search/query/transform/TermPrefixQueryTransformerConfig.java 2009-02-19 23:31:35 UTC (rev 7204) +++ branches/2.18/generic.sesam/query-transform-config/src/main/java/no/sesat/search/query/transform/TermPrefixQueryTransformerConfig.java 2009-02-23 12:25:04 UTC (rev 7205) @@ -1,5 +1,5 @@ /* - * Copyright (2005-2008) Schibsted Søk AS + * Copyright (2005-2009) Schibsted Søk AS * This file is part of SESAT. * * SESAT is free software: you can redistribute it and/or modify @@ -32,9 +32,10 @@ * allows seperate configured prefixes for LeafClauses, IntegerClauses, * and PhoneNumberPrefix, UrlClauses, and EmailClauses. * -// * Multiple prefixes can be configured with comma seperation. -// * EG prefix="site,domain" -// * By default this writes out (site:term domain:term) + * Multiple prefixes can be configured with comma seperation. + * EG prefix="site,domain" + * By default this writes out (site:term domain:term) + * but the joining operator can be configured with #setMultiTermJoin(string) * * @version $Id$ */ @@ -46,6 +47,7 @@ private String phoneNumberPrefix; private String numberPrefix; private String prefix; + private String multiTermJoin; /** * @see #setPrefix(java.lang.String) @@ -136,6 +138,23 @@ this.emailPrefix = prefix; } + /** + * @see #setMultiTermJoin(java.lang.String) + * + * @return the multiTermJoin. + */ + public String getMultiTermJoin() { + return multiTermJoin; + } + + /** + * Set the multiTermJoin. + * @param multiTermJoin The multiTermJoin. + */ + public void setMultiTermJoin(final String multiTermJoin) { + this.multiTermJoin = multiTermJoin; + } + @Override public TermPrefixQueryTransformerConfig readQueryTransformer(final Element qt){ Modified: branches/2.18/generic.sesam/query-transform-control/src/main/java/no/sesat/search/query/transform/TermPrefixQueryTransformer.java =================================================================== --- branches/2.18/generic.sesam/query-transform-control/src/main/java/no/sesat/search/query/transform/TermPrefixQueryTransformer.java 2009-02-19 23:31:35 UTC (rev 7204) +++ branches/2.18/generic.sesam/query-transform-control/src/main/java/no/sesat/search/query/transform/TermPrefixQueryTransformer.java 2009-02-23 12:25:04 UTC (rev 7205) @@ -1,5 +1,5 @@ /* - * Copyright (2005-2008) Schibsted Søk AS + * Copyright (2005-2009) Schibsted Søk AS * This file is part of SESAT. * * SESAT is free software: you can redistribute it and/or modify @@ -141,10 +141,21 @@ } private void addPrefix(final Clause clause, final String prefix) { + final String term = getTransformedTerms().get(clause); if (term != null && !(term.equals("") || isAlreadyPrefixed(term, prefix))) { - getTransformedTerms().put(clause, prefix + ':' + term); + final String[] prefixArr = prefix.split(","); + final StringBuilder builder = new StringBuilder(); + if(1 < prefixArr.length){ builder.append('('); } + for(String p : prefixArr){ + builder.append(p + ':' + term); + if(!p.equals(prefixArr[prefixArr.length-1])){ + builder.append(' ' + config.getMultiTermJoin() + ' '); + } + } + if(1 < prefixArr.length){ builder.append(')'); } + getTransformedTerms().put(clause, builder.toString()); } } _______________________________________________ Kernel-commits mailing list Kernel-commits@sesat.no http://sesat.no/mailman/listinfo/kernel-commits