Hi Rafa,
it is strange that the filter doesn't work, if you share the relevant
part of your spring configuration and your solr logs we can try to
understand. Anyway, note that using the filter will esclude the Van de
Velde authored items from the result and not only his name from the
author facets.
I discourage you to attempt to remove the name from the facet list after
the search, it is complex as it also affect pagination of facets result.
IMHO it is better to avoid indexing of the value at all.
Place to look to prevent indexing
https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/discovery/SolrServiceImpl.java#L1088
try something like
if ("Van de Velde, Kevin".equalsIgnoreCase(value)) continue;
obviously you need to make the code more general and configurable, maybe
you want to check also which facet is indexing.
The above solution is a very clumsy patch... an elegant solution, as the
one adopted in DSpace-CRIS, requires the ability to index virtual
metadata that can be external defined (filtering existent one as in your
use case)
I don't know where in the code is controlled the resultset sent to
static-sidebar-facet.jsp.
https://github.com/DSpace/DSpace/blob/master/dspace-jspui/src/main/java/org/dspace/app/webui/discovery/DiscoverySearchRequestProcessor.java#L166
but as you can see following the code the mapping between the SOLR
response and the java object used by the view is done at a very low
level in the DSpace API.
Hope this help,
Andrea
Il 18/04/2016 11:24, Rafa Carreres ha scritto:
Hi Andrea,
Thank you for your help.
According to this, filtering with -dc.contributor.author:"Van de
Velde, Kevin" should show all the authors but that one, but
unfortunately it doesn't work. Oddly, the same query in SOLR web
interface works perfectly, excluding those items including that
particular author.
Checking out solr.log shows that the filter is being applied but with
no effect.
Another approach I'm currently is to modify the code in
static-sidebar-facet.jsp to exclude those authors I don't want to be
showed in the facet.
It works, but, instead of 5 authors (I have limit=5), for example, it
shows 4, as "Van de Velde, Kevin" has been excluded.
I don't know where in the code is controlled the resultset sent to
static-sidebar-facet.jsp.
Any clue about this point?
Regards,
On Thursday, April 14, 2016 at 3:02:31 PM UTC+2, Andrea Bollini wrote:
Hi Rafa,
the defaultFilterQueries parameter allows you to limit the result
set. The facet are automatically build upon the result. This mean
that in your case you will have in the author facet only Van de
Velde, Kevin and his coauthors. Also if you write the opposite
query, i.e.
-dc.contributor.autor:"Van de Velde, Kevin"
I guess that the result will be not what you expect. No items
where Van de Velde appears as author will be retrieved, so it will
be not included in the author facet but I guess that this is more
restrictive than what you want to achieve.
To exclude a terms from a facet the only way is to prevent such
term to be indexed and you can do that only customizing the code.
In DSpace-CRIS you can easily achieve such goal implementing an
EnhancedValueGenerator and using such virtual metadata (i.e.
item.filteredauhor) in the discovery facet configuration
it.cineca.surplus.ir.defaultvalues.EnhancedValuesGenerator
An example of virtual metadata build using this interface in
DSpace-CRIS and used in discovery can be found here:
https://github.com/Cineca/DSpace/blob/dspace-5_x_x-cris/dspace-api/src/main/java/it/cineca/surplus/ir/defaultvalues/FulltextInfoGenerator.java
<https://github.com/Cineca/DSpace/blob/dspace-5_x_x-cris/dspace-api/src/main/java/it/cineca/surplus/ir/defaultvalues/FulltextInfoGenerator.java>
https://github.com/Cineca/DSpace/blob/dspace-5_x_x-cris/dspace/config/spring/cris/cris-metadata-enhancers.xml#L167
<https://github.com/Cineca/DSpace/blob/dspace-5_x_x-cris/dspace/config/spring/cris/cris-metadata-enhancers.xml#L167>
https://github.com/Cineca/DSpace/blob/dspace-5_x_x-cris/dspace/config/spring/api/discovery.xml#L1722
<https://github.com/Cineca/DSpace/blob/dspace-5_x_x-cris/dspace/config/spring/api/discovery.xml#L1722>
Hope this help,
Andrea
Il 14/04/2016 10:48, Rafa Carreres ha scritto:
Hi all,
In DSpace 5 (Jspui) I have a facet for authors. But, I would like
to exclude certain authors from the facet.
I have read the documentation
(https://wiki.duraspace.org/display/DSDOC5x/Discovery
<https://wiki.duraspace.org/display/DSDOC5x/Discovery>) about
discovery and "Adding default filter queries (OPTIONAL)".
According to this, if I define something like this:
<property name="defaultFilterQueries">
<list>
<value>dc.contributor.author: "Van de Velde, Kevin"</value>
</list>
</property>
Does it mean that I'll only get "Van de Velde, Kevin" in the
author facet?
If so, how could I EXCLUDE a number of author from the facet?
What's the syntax for this?
Regards,
Rafa Carreres
--
You received this message because you are subscribed to the
Google Groups "DSpace Technical Support" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to dspace-tech...@googlegroups.com <javascript:>.
To post to this group, send email to dspac...@googlegroups.com
<javascript:>.
Visit this group at https://groups.google.com/group/dspace-tech
<https://groups.google.com/group/dspace-tech>.
For more options, visit https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.
--
Andrea Bollini
International Business Development, Deputy Leader
Open Source & Open Standards Strategy, Head
Cineca
Via dei Tizii, 6
00185 Roma, Italy
tel. +39 06 44 486 087 - mob. +39 348 82 77 525
http://www.cineca.it
--
Andrea Bollini
International Business Development, Deputy Leader
Open Source & Open Standards Strategy, Head
Cineca
Via dei Tizii, 6
00185 Roma, Italy
tel. +39 06 44 486 087 - mob. +39 348 82 77 525
http://www.cineca.it
--
You received this message because you are subscribed to the Google Groups "DSpace
Technical Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to dspace-tech+unsubscr...@googlegroups.com.
To post to this group, send email to dspace-tech@googlegroups.com.
Visit this group at https://groups.google.com/group/dspace-tech.
For more options, visit https://groups.google.com/d/optout.