Author: ssmiweve
Date: 2009-09-17 10:46:06 +0200 (Thu, 17 Sep 2009)
New Revision: 7283
Modified:
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/SolrCommandConfig.java
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/SolrSimpleFacetToolkitImpl.java
branches/2.18/search-command-config-spi/src/main/java/no/sesat/search/mode/config/FacetedCommandConfig.java
Log:
Facet values (facets selected by the user) can be multi-valued using the
specificated separator.
A blank string will disable any ability to select multiple facet values.
The default separator is "," unless sepcified by implementation.
API Breakage: This breaks non-abstract implementations of FacetedCommandConfig
((this was only very recently introduced in the 2.18 branch))
Modified:
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/SolrCommandConfig.java
===================================================================
---
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/SolrCommandConfig.java
2009-09-15 08:24:57 UTC (rev 7282)
+++
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/SolrCommandConfig.java
2009-09-17 08:46:06 UTC (rev 7283)
@@ -54,6 +54,8 @@
private String queryType = null;
+ private String facetSeperator = ",";
+
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
@@ -189,6 +191,15 @@
}
@Override
+ public String getFacetSeparator(){
+ return facetSeperator;
+ }
+
+ public void setFacetSeparator(final String facetSeperator){
+ this.facetSeperator = facetSeperator;
+ }
+
+ @Override
public SearchConfiguration readSearchConfiguration(
final Element element,
final SearchConfiguration inherit,
Modified:
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/SolrSimpleFacetToolkitImpl.java
===================================================================
---
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/SolrSimpleFacetToolkitImpl.java
2009-09-15 08:24:57 UTC (rev 7282)
+++
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/SolrSimpleFacetToolkitImpl.java
2009-09-17 08:46:06 UTC (rev 7283)
@@ -40,6 +40,7 @@
// Public --------------------------------------------------------
+ @Override
public void createFacets(final SearchCommand.Context context, final
SolrQuery query) {
final Map<String, Navigator> facets =
getSearchConfiguration(context).getFacets();
@@ -51,6 +52,7 @@
}
}
+ @Override
public void collectFacets(
final SearchCommand.Context context,
final QueryResponse response,
@@ -76,9 +78,14 @@
final StringDataObject facetValue =
context.getDataModel().getParameters().getValue(facet.getId());
if (null != facetValue) {
+
// splitting here allows for multiple navigation selections within
the one navigation level.
- for (String navSingleValue : facetValue.getString().split(",")) {
+ final String[] arr =
getSearchConfiguration(context).getFacetSeparator().isEmpty()
+ ? new String[]{facetValue.getString()}
+ :
facetValue.getString().split(getSearchConfiguration(context).getFacetSeparator());
+ for (String navSingleValue : arr) {
+
final String value = facet.isBoundaryMatch()
? "^\"" + navSingleValue + "\"$"
: "\"" + navSingleValue + "\"";
Modified:
branches/2.18/search-command-config-spi/src/main/java/no/sesat/search/mode/config/FacetedCommandConfig.java
===================================================================
---
branches/2.18/search-command-config-spi/src/main/java/no/sesat/search/mode/config/FacetedCommandConfig.java
2009-09-15 08:24:57 UTC (rev 7282)
+++
branches/2.18/search-command-config-spi/src/main/java/no/sesat/search/mode/config/FacetedCommandConfig.java
2009-09-17 08:46:06 UTC (rev 7283)
@@ -40,4 +40,12 @@
* @return
*/
Map<String, Navigator> getFacets();
+
+ /** Facet values (facets selected by the user) can be multi-valued using
the specificated separator.
+ * A blank string will disable any ability to select multiple facet values.
+ *
+ * The default separator is "," unless sepcified by implementation.
+ * @return
+ */
+ String getFacetSeparator();
}
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits