mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-18 07:23:08 +00:00
Merge remote-tracking branch 'upstream/master' into DS-2784-jersey2
Conflicts: dspace-rest/src/main/java/org/dspace/rest/HandleResource.java
This commit is contained in:
@@ -0,0 +1,90 @@
|
|||||||
|
/**
|
||||||
|
* The contents of this file are subject to the license and copyright
|
||||||
|
* detailed in the LICENSE and NOTICE files at the root of the source
|
||||||
|
* tree and available online at
|
||||||
|
*
|
||||||
|
* http://www.dspace.org/license/
|
||||||
|
*/
|
||||||
|
package org.dspace.discovery;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.solr.common.SolrInputDocument;
|
||||||
|
import org.dspace.content.Bitstream;
|
||||||
|
import org.dspace.content.Bundle;
|
||||||
|
import org.dspace.content.DSpaceObject;
|
||||||
|
import org.dspace.content.Item;
|
||||||
|
import org.dspace.core.Context;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This plugin adds three fields to the solr index to make a facet with/without
|
||||||
|
* content in the ORIGINAL Bundle possible (like full text, images...). It is
|
||||||
|
* activated simply by adding this class as a bean to discovery.xml.
|
||||||
|
*
|
||||||
|
* The facet is added to Discovery in the usual way (create a searchFilter bean
|
||||||
|
* and add it to the expected place) just with an empty list of used metadata
|
||||||
|
* fields because there are none.
|
||||||
|
*
|
||||||
|
* @author Christian Scheible <christian.scheible@uni-konstanz.de>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class SolrServiceContentInOriginalBundleFilterPlugin implements SolrServiceIndexPlugin
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void additionalIndex(Context context, DSpaceObject dso, SolrInputDocument document)
|
||||||
|
{
|
||||||
|
if (dso instanceof Item)
|
||||||
|
{
|
||||||
|
Item item = (Item) dso;
|
||||||
|
boolean hasOriginalBundleWithContent = hasOriginalBundleWithContent(item);
|
||||||
|
|
||||||
|
// _keyword and _filter because
|
||||||
|
// they are needed in order to work as a facet and filter.
|
||||||
|
if (!hasOriginalBundleWithContent)
|
||||||
|
{
|
||||||
|
// no content in the original bundle
|
||||||
|
document.addField("has_content_in_original_bundle", false);
|
||||||
|
document.addField("has_content_in_original_bundle_keyword", false);
|
||||||
|
document.addField("has_content_in_original_bundle_filter", false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
document.addField("has_content_in_original_bundle", true);
|
||||||
|
document.addField("has_content_in_original_bundle_keyword", true);
|
||||||
|
document.addField("has_content_in_original_bundle_filter", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the given item has a bundle with the name ORIGINAL
|
||||||
|
* containing at least one bitstream.
|
||||||
|
*
|
||||||
|
* @param item
|
||||||
|
* to check
|
||||||
|
* @return true if there is at least on bitstream in the bundle named
|
||||||
|
* ORIGINAL, otherwise false
|
||||||
|
*/
|
||||||
|
private boolean hasOriginalBundleWithContent(Item item)
|
||||||
|
{
|
||||||
|
List<Bundle> bundles;
|
||||||
|
bundles = item.getBundles();
|
||||||
|
if (bundles != null)
|
||||||
|
{
|
||||||
|
for (Bundle curBundle : bundles)
|
||||||
|
{
|
||||||
|
String bName = curBundle.getName();
|
||||||
|
if ((bName != null) && bName.equals("ORIGINAL"))
|
||||||
|
{
|
||||||
|
List<Bitstream> bitstreams = curBundle.getBitstreams();
|
||||||
|
if (bitstreams != null && bitstreams.size() > 0)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
@@ -568,12 +568,9 @@ public class SolrLoggerServiceImpl implements SolrLoggerService, InitializingBea
|
|||||||
{
|
{
|
||||||
Community comm = (Community) dso;
|
Community comm = (Community) dso;
|
||||||
List<Community> parentCommunities = comm.getParentCommunities();
|
List<Community> parentCommunities = comm.getParentCommunities();
|
||||||
while (CollectionUtils.isNotEmpty(parentCommunities))
|
for (Community parent : parentCommunities) {
|
||||||
{
|
doc1.addField("owningComm", parent.getID());
|
||||||
for (int i = 0; i < parentCommunities.size(); i++) {
|
storeParents(doc1, parent);
|
||||||
Community community = parentCommunities.get(i);
|
|
||||||
doc1.addField("owningComm", comm.getID());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (dso instanceof Collection)
|
else if (dso instanceof Collection)
|
||||||
|
@@ -875,6 +875,9 @@ jsp.search.facet.refine = Discover
|
|||||||
jsp.search.facet.refine.author = Author
|
jsp.search.facet.refine.author = Author
|
||||||
jsp.search.facet.refine.subject = Subject
|
jsp.search.facet.refine.subject = Subject
|
||||||
jsp.search.facet.refine.dateIssued = Date issued
|
jsp.search.facet.refine.dateIssued = Date issued
|
||||||
|
jsp.search.facet.refine.has_content_in_original_bundle = Has File(s)
|
||||||
|
jsp.search.facet.refine.value_has_content_in_original_bundle_true = Yes
|
||||||
|
jsp.search.facet.refine.value.has_content_in_original_bundle_false = False
|
||||||
jsp.search.facet.refine.previous = < previous
|
jsp.search.facet.refine.previous = < previous
|
||||||
jsp.search.facet.refine.next = next >
|
jsp.search.facet.refine.next = next >
|
||||||
jsp.search.facet.narrow = Filter by {0}
|
jsp.search.facet.narrow = Filter by {0}
|
||||||
@@ -893,6 +896,7 @@ jsp.search.filter.op.contains = Contains
|
|||||||
jsp.search.filter.op.notcontains = Not Contains
|
jsp.search.filter.op.notcontains = Not Contains
|
||||||
jsp.search.filter.op.authority = ID
|
jsp.search.filter.op.authority = ID
|
||||||
jsp.search.filter.op.notauthority = Not ID
|
jsp.search.filter.op.notauthority = Not ID
|
||||||
|
jsp.search.filter.has_content_in_original_bundle = Has File(s)
|
||||||
jsp.sherpa.title = SHERPA/RoMEO Publisher Policy Database
|
jsp.sherpa.title = SHERPA/RoMEO Publisher Policy Database
|
||||||
jsp.sherpa.loading = <p>Fetching policy information from the SHERPA/RoMEO database</p><img alt="loading" src="{0}/sherpa/image/ajax-loader-big.gif" />
|
jsp.sherpa.loading = <p>Fetching policy information from the SHERPA/RoMEO database</p><img alt="loading" src="{0}/sherpa/image/ajax-loader-big.gif" />
|
||||||
jsp.sherpa.heading = <p class="sherpaDisclaimer"><a href="http://www.sherpa.ac.uk/romeo.php" target="_blank"><img align="left" src="{0}/sherpa/image/romeosmall.gif" width="100" height="54" alt="SHERPA/RoMEO Database" border="0"></a> All SHERPA/RoMEO information is correct to the best of our knowledge but should not be relied upon for legal advice. SHERPA cannot be held responsible for the re-use of RoMEO data, or for alternative interpretations which are derived from this information.</p>
|
jsp.sherpa.heading = <p class="sherpaDisclaimer"><a href="http://www.sherpa.ac.uk/romeo.php" target="_blank"><img align="left" src="{0}/sherpa/image/romeosmall.gif" width="100" height="54" alt="SHERPA/RoMEO Database" border="0"></a> All SHERPA/RoMEO information is correct to the best of our knowledge but should not be relied upon for legal advice. SHERPA cannot be held responsible for the re-use of RoMEO data, or for alternative interpretations which are derived from this information.</p>
|
||||||
|
@@ -40,13 +40,14 @@ public class HandleResource extends Resource {
|
|||||||
protected AuthorizeService authorizeService = AuthorizeServiceFactory.getInstance().getAuthorizeService();
|
protected AuthorizeService authorizeService = AuthorizeServiceFactory.getInstance().getAuthorizeService();
|
||||||
|
|
||||||
private static Logger log = Logger.getLogger(HandleResource.class);
|
private static Logger log = Logger.getLogger(HandleResource.class);
|
||||||
private static org.dspace.core.Context context;
|
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/{prefix}/{suffix}")
|
@Path("/{prefix}/{suffix}")
|
||||||
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||||
public org.dspace.rest.common.DSpaceObject getObject(@PathParam("prefix") String prefix, @PathParam("suffix") String suffix, @QueryParam("expand") String expand, @javax.ws.rs.core.Context HttpHeaders headers) {
|
public org.dspace.rest.common.DSpaceObject getObject(@PathParam("prefix") String prefix, @PathParam("suffix") String suffix, @QueryParam("expand") String expand, @javax.ws.rs.core.Context HttpHeaders headers) {
|
||||||
DSpaceObject dSpaceObject = new DSpaceObject();
|
DSpaceObject dSpaceObject = new DSpaceObject();
|
||||||
|
org.dspace.core.Context context = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
context = createContext(getUser(headers));
|
context = createContext(getUser(headers));
|
||||||
|
|
||||||
@@ -62,20 +63,23 @@ public class HandleResource extends Resource {
|
|||||||
switch(dso.getType()) {
|
switch(dso.getType()) {
|
||||||
case Constants.COMMUNITY:
|
case Constants.COMMUNITY:
|
||||||
dSpaceObject = new Community((org.dspace.content.Community) dso, servletContext, expand, context);
|
dSpaceObject = new Community((org.dspace.content.Community) dso, servletContext, expand, context);
|
||||||
return dSpaceObject;
|
break;
|
||||||
case Constants.COLLECTION:
|
case Constants.COLLECTION:
|
||||||
dSpaceObject = new Collection((org.dspace.content.Collection) dso, servletContext, expand, context, null, null);
|
dSpaceObject = new Collection((org.dspace.content.Collection) dso, servletContext, expand, context, null, null);
|
||||||
return dSpaceObject;
|
break;
|
||||||
case Constants.ITEM:
|
case Constants.ITEM:
|
||||||
dSpaceObject = new Item((org.dspace.content.Item) dso, servletContext, expand, context);
|
dSpaceObject = new Item((org.dspace.content.Item) dso, servletContext, expand, context);
|
||||||
return dSpaceObject;
|
break;
|
||||||
default:
|
default:
|
||||||
dSpaceObject = new DSpaceObject(dso, servletContext);
|
dSpaceObject = new DSpaceObject(dso, servletContext);
|
||||||
return dSpaceObject;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new WebApplicationException(Response.Status.UNAUTHORIZED);
|
throw new WebApplicationException(Response.Status.UNAUTHORIZED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
context.complete();
|
||||||
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
log.error(e.getMessage());
|
log.error(e.getMessage());
|
||||||
throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
|
throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
|
||||||
@@ -88,7 +92,7 @@ public class HandleResource extends Resource {
|
|||||||
processFinally(context);
|
processFinally(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Not sure where I was missing a return..
|
|
||||||
return dSpaceObject;
|
return dSpaceObject;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
32
dspace-rest/src/main/java/org/dspace/utils/DSpaceWebapp.java
Normal file
32
dspace-rest/src/main/java/org/dspace/utils/DSpaceWebapp.java
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
/**
|
||||||
|
* The contents of this file are subject to the license and copyright
|
||||||
|
* detailed in the LICENSE and NOTICE files at the root of the source
|
||||||
|
* tree and available online at
|
||||||
|
*
|
||||||
|
* http://www.dspace.org/license/
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.dspace.utils;
|
||||||
|
|
||||||
|
import org.dspace.app.util.AbstractDSpaceWebapp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An MBean to identify this web application.
|
||||||
|
*
|
||||||
|
* @author Bram Luyten <bram@atmire.com>
|
||||||
|
*/
|
||||||
|
public class DSpaceWebapp
|
||||||
|
extends AbstractDSpaceWebapp
|
||||||
|
{
|
||||||
|
public DSpaceWebapp()
|
||||||
|
{
|
||||||
|
super("REST");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isUI()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -141,5 +141,18 @@
|
|||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
<!-- Replacing has content in original bundle lables (true,false) in Discover section with i18n elements -->
|
||||||
|
<xsl:template match="//dri:list[@id='aspect.discovery.SidebarFacetsTransformer.list.has_content_in_original_bundle']/dri:item//text()">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="substring-before(.,' ') = 'true'">
|
||||||
|
<i18n:text>xmlui.ArtifactBrowser.AdvancedSearch.value_has_content_in_original_bundle_true</i18n:text>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<i18n:text>xmlui.ArtifactBrowser.AdvancedSearch.value_has_content_in_original_bundle_false</i18n:text>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
<xsl:text> </xsl:text>
|
||||||
|
<xsl:value-of select="substring-after(.,' ')"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
</xsl:stylesheet>
|
</xsl:stylesheet>
|
||||||
|
@@ -44,6 +44,10 @@
|
|||||||
<message key="xmlui.ArtifactBrowser.AdvancedSearch.type_dc.date.issued">Date Issued</message>
|
<message key="xmlui.ArtifactBrowser.AdvancedSearch.type_dc.date.issued">Date Issued</message>
|
||||||
<message key="xmlui.ArtifactBrowser.AdvancedSearch.type_dateIssued">Date Issued</message>
|
<message key="xmlui.ArtifactBrowser.AdvancedSearch.type_dateIssued">Date Issued</message>
|
||||||
|
|
||||||
|
<message key="xmlui.ArtifactBrowser.AdvancedSearch.type_has_content_in_original_bundle">Has File(s)</message>
|
||||||
|
<message key="xmlui.ArtifactBrowser.AdvancedSearch.value_has_content_in_original_bundle_true">Yes</message>
|
||||||
|
<message key="xmlui.ArtifactBrowser.AdvancedSearch.value_has_content_in_original_bundle_false">No</message>
|
||||||
|
|
||||||
|
|
||||||
<!-- Site Level Recently Added Content -->
|
<!-- Site Level Recently Added Content -->
|
||||||
<message key="xmlui.ArtifactBrowser.SiteViewer.head_recent_submissions">Recently Added</message>
|
<message key="xmlui.ArtifactBrowser.SiteViewer.head_recent_submissions">Recently Added</message>
|
||||||
@@ -95,6 +99,7 @@
|
|||||||
|
|
||||||
<message key="xmlui.ArtifactBrowser.SimpleSearch.filter.title">Title</message>
|
<message key="xmlui.ArtifactBrowser.SimpleSearch.filter.title">Title</message>
|
||||||
<message key="xmlui.ArtifactBrowser.SimpleSearch.filter.dateIssued">Date issued</message>
|
<message key="xmlui.ArtifactBrowser.SimpleSearch.filter.dateIssued">Date issued</message>
|
||||||
|
<message key="xmlui.ArtifactBrowser.SimpleSearch.filter.has_content_in_original_bundle">Has File(s)</message>
|
||||||
|
|
||||||
|
|
||||||
<message key="xmlui.dri2xhtml.structural.pagination-info.nototal">Now showing items {0}-{1}</message>
|
<message key="xmlui.dri2xhtml.structural.pagination-info.nototal">Now showing items {0}-{1}</message>
|
||||||
|
@@ -65,5 +65,18 @@
|
|||||||
</li>
|
</li>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
<!-- Replacing has content in original bundle facet lables (true,false) in Discover section with i18n elements -->
|
||||||
|
<xsl:template match="//dri:list[@id='aspect.discovery.SidebarFacetsTransformer.list.has_content_in_original_bundle']/dri:item//text()">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="substring-before(.,' ') = 'true'">
|
||||||
|
<i18n:text>xmlui.ArtifactBrowser.AdvancedSearch.value_has_content_in_original_bundle_true</i18n:text>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<i18n:text>xmlui.ArtifactBrowser.AdvancedSearch.value_has_content_in_original_bundle_false</i18n:text>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
<xsl:text> </xsl:text>
|
||||||
|
<xsl:value-of select="substring-after(.,' ')"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
</xsl:stylesheet>
|
</xsl:stylesheet>
|
||||||
|
@@ -32,6 +32,9 @@
|
|||||||
class="org.dspace.browse.SolrBrowseCreateDAO">
|
class="org.dspace.browse.SolrBrowseCreateDAO">
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<!-- Additional indexing plugin make filtering by has content in original bundle (like pdf's, images) posible via SOLR -->
|
||||||
|
<bean id="hasContentInOriginalBundle" class="org.dspace.discovery.SolrServiceContentInOriginalBundleFilterPlugin"/>
|
||||||
|
|
||||||
<!--Bean that is used for mapping communities/collections to certain discovery configurations.-->
|
<!--Bean that is used for mapping communities/collections to certain discovery configurations.-->
|
||||||
<bean id="org.dspace.discovery.configuration.DiscoveryConfigurationService" class="org.dspace.discovery.configuration.DiscoveryConfigurationService">
|
<bean id="org.dspace.discovery.configuration.DiscoveryConfigurationService" class="org.dspace.discovery.configuration.DiscoveryConfigurationService">
|
||||||
<property name="map">
|
<property name="map">
|
||||||
@@ -98,6 +101,7 @@
|
|||||||
<ref bean="searchFilterAuthor" />
|
<ref bean="searchFilterAuthor" />
|
||||||
<ref bean="searchFilterSubject" />
|
<ref bean="searchFilterSubject" />
|
||||||
<ref bean="searchFilterIssued" />
|
<ref bean="searchFilterIssued" />
|
||||||
|
<ref bean="searchFilterContentInOriginalBundle"/>
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
<!-- Set TagCloud configuration per discovery configuration -->
|
<!-- Set TagCloud configuration per discovery configuration -->
|
||||||
@@ -109,6 +113,7 @@
|
|||||||
<ref bean="searchFilterAuthor" />
|
<ref bean="searchFilterAuthor" />
|
||||||
<ref bean="searchFilterSubject" />
|
<ref bean="searchFilterSubject" />
|
||||||
<ref bean="searchFilterIssued" />
|
<ref bean="searchFilterIssued" />
|
||||||
|
<ref bean="searchFilterContentInOriginalBundle"/>
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
<!--The sort filters for the discovery search-->
|
<!--The sort filters for the discovery search-->
|
||||||
@@ -203,6 +208,7 @@
|
|||||||
<ref bean="searchFilterAuthor" />
|
<ref bean="searchFilterAuthor" />
|
||||||
<ref bean="searchFilterSubject" />
|
<ref bean="searchFilterSubject" />
|
||||||
<ref bean="searchFilterIssued" />
|
<ref bean="searchFilterIssued" />
|
||||||
|
<ref bean="searchFilterContentInOriginalBundle"/>
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
<!-- Set TagCloud configuration per discovery configuration -->
|
<!-- Set TagCloud configuration per discovery configuration -->
|
||||||
@@ -214,6 +220,7 @@
|
|||||||
<ref bean="searchFilterAuthor" />
|
<ref bean="searchFilterAuthor" />
|
||||||
<ref bean="searchFilterSubject" />
|
<ref bean="searchFilterSubject" />
|
||||||
<ref bean="searchFilterIssued" />
|
<ref bean="searchFilterIssued" />
|
||||||
|
<ref bean="searchFilterContentInOriginalBundle"/>
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
<!--The sort filters for the discovery search (same as defaultConfiguration above)-->
|
<!--The sort filters for the discovery search (same as defaultConfiguration above)-->
|
||||||
@@ -405,6 +412,16 @@
|
|||||||
<property name="sortOrder" value="VALUE"/>
|
<property name="sortOrder" value="VALUE"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<bean id="searchFilterContentInOriginalBundle" class="org.dspace.discovery.configuration.DiscoverySearchFilterFacet">
|
||||||
|
<property name="indexFieldName" value="has_content_in_original_bundle"/>
|
||||||
|
<property name="metadataFields">
|
||||||
|
<list/>
|
||||||
|
</property>
|
||||||
|
<property name="facetLimit" value="2"/>
|
||||||
|
<property name="type" value="standard"/>
|
||||||
|
<property name="sortOrder" value="VALUE"/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
<!--Sort properties-->
|
<!--Sort properties-->
|
||||||
<bean id="sortTitle" class="org.dspace.discovery.configuration.DiscoverySortFieldConfiguration">
|
<bean id="sortTitle" class="org.dspace.discovery.configuration.DiscoverySortFieldConfiguration">
|
||||||
<property name="metadataField" value="dc.title"/>
|
<property name="metadataField" value="dc.title"/>
|
||||||
|
@@ -537,6 +537,8 @@
|
|||||||
|
|
||||||
<field name="read" type="string" indexed="true" stored="true" omitNorms="true" multiValued="true" docValues="true" />
|
<field name="read" type="string" indexed="true" stored="true" omitNorms="true" multiValued="true" docValues="true" />
|
||||||
|
|
||||||
|
<field name="has_content_in_original_bundle" type="string" indexed="true" stored="true" omitNorms="true" multiValued="true" docValues="true" />
|
||||||
|
|
||||||
<!-- Community and collection hierarchy of the Item of interest (candidate for hierarchical facetting ) -->
|
<!-- Community and collection hierarchy of the Item of interest (candidate for hierarchical facetting ) -->
|
||||||
<field name="location" type="lowerCaseSort" indexed="true" stored="true" multiValued="true" required="false" omitNorms="true" />
|
<field name="location" type="lowerCaseSort" indexed="true" stored="true" multiValued="true" required="false" omitNorms="true" />
|
||||||
<field name="location.comm" type="lowerCaseSort" indexed="true" stored="true" multiValued="true" required="false" omitNorms="true" />
|
<field name="location.comm" type="lowerCaseSort" indexed="true" stored="true" multiValued="true" required="false" omitNorms="true" />
|
||||||
|
Reference in New Issue
Block a user