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
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits