Author: ssmiweve
Date: 2008-02-14 14:03:49 +0100 (Thu, 14 Feb 2008)
New Revision: 6119
Modified:
branches/2.16/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
branches/2.16/generic.sesam/velocity-directives/src/main/java/no/sesat/search/view/velocity/AbstractEnrichmentDirective.java
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/SearchTabFactory.java
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/config/SearchTab.java
branches/2.16/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
Log:
SEARCH-3654 - Generalized enrichment handling
re-implementation of the always-visible enrichment attribute
Modified:
branches/2.16/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
===================================================================
---
branches/2.16/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
2008-02-14 12:06:42 UTC (rev 6118)
+++
branches/2.16/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
2008-02-14 13:03:49 UTC (rev 6119)
@@ -348,6 +348,9 @@
searchResult.addField(EnrichmentHint.NAME_KEY, name);
searchResult.addObjectField(EnrichmentHint.SCORE_KEY, score);
searchResult.addObjectField(EnrichmentHint.HINT_KEY, eHint);
+ for(Map.Entry<String,String> property :
eHint.getProperties().entrySet()){
+
searchResult.addObjectField(property.getKey(), property.getValue());
+ }
}
}
}catch(ExecutionException ee){
@@ -433,16 +436,11 @@
final Map<String,StringDataObject> parameters =
datamodel.getParameters().getValues();
- // TODO simplify with new pager architecture
- final boolean firstPage = null == parameters.get("offset")
- || "0".equals(parameters.get("offset").getString());
-
// TODO 'collapse' is not a sesat standard. standardise or move out.
final boolean collapse = null == parameters.get("collapse")
|| "".equals(parameters.get("collapse").getString());
- if (context.getSearchMode().isAnalysis() &&
(firstPage||eHint.isAlwaysvisible())
- && collapse && eHint.getWeight() > 0){
+ if (context.getSearchMode().isAnalysis() && collapse &&
eHint.getWeight() > 0){
int score = eHint.getBaseScore();
Modified:
branches/2.16/generic.sesam/velocity-directives/src/main/java/no/sesat/search/view/velocity/AbstractEnrichmentDirective.java
===================================================================
---
branches/2.16/generic.sesam/velocity-directives/src/main/java/no/sesat/search/view/velocity/AbstractEnrichmentDirective.java
2008-02-14 12:06:42 UTC (rev 6118)
+++
branches/2.16/generic.sesam/velocity-directives/src/main/java/no/sesat/search/view/velocity/AbstractEnrichmentDirective.java
2008-02-14 13:03:49 UTC (rev 6119)
@@ -31,6 +31,7 @@
import java.util.TreeSet;
import java.util.WeakHashMap;
import java.util.concurrent.locks.ReentrantReadWriteLock;
+import no.sesat.search.datamodel.DataModel;
import no.sesat.search.datamodel.search.SearchDataObject;
import no.sesat.search.result.ResultList;
import no.sesat.search.site.Site;
@@ -143,7 +144,7 @@
// enrichments
- if (placementCorrect(tab, placement, i, e)){
+ if (placementCorrect(getDataModel(cxt),placement, i, e)){
if(3 == node.jjtGetNumChildren()){
writer.append(getArgument(cxt, node, 1));
@@ -171,6 +172,6 @@
return false;
}
- protected abstract boolean placementCorrect(SearchTab tab, String
placement, int i, ResultList e);
+ protected abstract boolean placementCorrect(DataModel datamodel, String
placement, int i, ResultList e);
}
Modified:
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/SearchTabFactory.java
===================================================================
---
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/SearchTabFactory.java
2008-02-14 12:06:42 UTC (rev 6118)
+++
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/SearchTabFactory.java
2008-02-14 13:03:49 UTC (rev 6119)
@@ -336,7 +336,6 @@
final NodeList nodeList = e.getChildNodes();
for (int l = 0; l < nodeList.getLength(); l++) {
final Node propNode = nodeList.item(l);
-
if (propNode instanceof Element){
final Element propE = (Element)propNode;
properties.put(propE.getNodeName(),
propE.getFirstChild().getNodeValue());
@@ -357,10 +356,24 @@
final int threshold =
parseInt(e.getAttribute("threshold"), 0);
final float weight = parseFloat(e.getAttribute("weight"),
0);
final String command = e.getAttribute("command");
- final boolean alwaysvisible =
parseBoolean(e.getAttribute("always-visable"),false);
+ final Map<String,String> properties = new
HashMap<String,String>();
+ final NodeList nodeList = e.getChildNodes();
+ for (int l = 0; l < nodeList.getLength(); l++) {
+ final Node propNode = nodeList.item(l);
+ if (propNode instanceof Element){
+ final Element propE = (Element)propNode;
+ properties.put(propE.getNodeName(),
propE.getFirstChild().getNodeValue());
+ }
+ }
- final SearchTab.EnrichmentHint enrichment
- = new SearchTab.EnrichmentHint(rule, baseScore,
threshold, weight, command, alwaysvisible);
+ final SearchTab.EnrichmentHint enrichment = new
SearchTab.EnrichmentHint(
+ rule,
+ baseScore,
+ threshold,
+ weight,
+ command,
+ properties);
+
enrichments.add(enrichment);
}
@@ -434,9 +447,6 @@
parseInt(tabE.getAttribute("ad-on-top"), inherit !=
null ? inherit.getAdOnTop() : -1),
Arrays.asList(css),
Arrays.asList(javascript),
- parseBoolean(tabE.getAttribute("absolute-ordering"),
inherit != null
- ? inherit.isAbsoluteOrdering()
- : false),
parseBoolean(tabE.getAttribute("display-css"), true),
parseBoolean(tabE.getAttribute("execute-on-blank"),
inherit != null
? inherit.isExecuteOnBlank()
Modified:
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/config/SearchTab.java
===================================================================
---
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/config/SearchTab.java
2008-02-14 12:06:42 UTC (rev 6118)
+++
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/config/SearchTab.java
2008-02-14 13:03:49 UTC (rev 6119)
@@ -59,7 +59,6 @@
private final String parentKey;
private final String rssResultName;
private final boolean rssHidden;
- private final boolean absoluteOrdering;
private final boolean displayCss;
private final boolean executeOnBlank;
private final Collection<EnrichmentPlacementHint> placements = new
ArrayList<EnrichmentPlacementHint>();
@@ -85,9 +84,6 @@
* @param rssResultName
* @param rssHidden
* @param navConf
- * @param enrichmentLimit
- * @param enrichmentOnTop
- * @param enrichmentOnTopScore
* @param placements
* @param enrichments
* @param adCommand
@@ -118,7 +114,6 @@
final int adOnTop,
final List<String> css,
final List<String> javascript,
- final boolean absoluteOrdering,
final boolean displayCss,
final boolean executeOnBlank,
final Layout defaultLayout,
@@ -154,7 +149,6 @@
this.rssResultName = rssResultName;
this.css.addAll(css);
this.javascript.addAll(javascript);
- this.absoluteOrdering = absoluteOrdering;
this.executeOnBlank = executeOnBlank;
this.rssHidden = rssHidden;
this.defaultLayout = defaultLayout;
@@ -272,15 +266,6 @@
}
/**
- * Getter for property absoluteOrdering
- * @return
- * @deprecated Not JavaBean compatable. Use isAbsoluteOrdering() instead.
- */
- public boolean getAbsoluteOrdering() {
- return absoluteOrdering;
- }
-
- /**
* Getter for property executeOnFront
* @return
*/
@@ -289,14 +274,6 @@
}
/**
- * Getter for property absoluteOrdering
- * @return
- */
- public boolean isAbsoluteOrdering() {
- return absoluteOrdering;
- }
-
- /**
* Getter for property displayCss
* @return
*/
@@ -418,7 +395,7 @@
* @param threshold
* @param weight
* @param command
- * @param alwaysvisible
+ * @param properties
*/
public EnrichmentHint(
final String rule,
@@ -426,14 +403,14 @@
final int threshold,
final float weight,
final String command,
- final boolean alwaysvisible){
+ final Map<String,String> properties){
this.rule = rule;
this.baseScore = baseScore;
this.threshold = threshold;
this .weight = weight;
this.command = command;
- this.alwaysvisible=alwaysvisible;
+ this.properties.putAll(properties);
}
@@ -442,7 +419,7 @@
private final int threshold;
private final String command;
private final float weight;
- private final boolean alwaysvisible;
+ private final Map<String,String> properties = new
HashMap<String,String>();
/**
* Getter for property rule.
@@ -491,16 +468,13 @@
return rule + '[' + command + ']';
}
- /**
- * Getter for property alwaysvisible.
- * alwaysvisible = means that there is no "firstPage" limitation if
the
- * enrichments should be visible or not.
- * @return Value of property alwaysvisible.
- */
- public boolean isAlwaysvisible(){
- return this.alwaysvisible;
+ public Map<String,String> getProperties(){
+ return Collections.unmodifiableMap(properties);
}
-
+
+ public String getProperty(final String key){
+ return properties.get(key);
+ }
}
/** Immutable POJO holdng Enrichment Placement properties for a given
placement on a given tab. **/
Modified:
branches/2.16/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
===================================================================
---
branches/2.16/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
2008-02-14 12:06:42 UTC (rev 6118)
+++
branches/2.16/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
2008-02-14 13:03:49 UTC (rev 6119)
@@ -80,10 +80,15 @@
final PagingHelper pager
= new PagingHelper(hitCount, config.getPageSize(), offset,
config.getNumberOfPages());
+ // it is useful to have these fields in most the original search
command and in the NavigationItem
searchResult.addField(CURRENT_PAGE,
Integer.toString(pager.getCurrentPage()));
+ item.addField(CURRENT_PAGE, searchResult.getField(CURRENT_PAGE));
searchResult.addField(NUMBER_OF_PAGES,
Integer.toString(pager.getNumberOfPages()));
+ item.addField(NUMBER_OF_PAGES,
searchResult.getField(NUMBER_OF_PAGES));
searchResult.addField(FIRST_VISIBLE_PAGE,
Integer.toString(pager.getFirstVisiblePage()));
+ item.addField(FIRST_VISIBLE_PAGE,
searchResult.getField(FIRST_VISIBLE_PAGE));
searchResult.addField(LAST_VISIBLE_PAGE,
Integer.toString(pager.getLastVisiblePage()));
+ item.addField(LAST_VISIBLE_PAGE,
searchResult.getField(LAST_VISIBLE_PAGE));
final TextMessages messages =
TextMessages.valueOf(context.getSite());
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits