Bug #3033
ONEMercury 'find similar data' not respecting private sci-meta data.
100%
Description
The ONEMercury 'find similar data' query implementation does not adhere to the fq parameter to only return public documents. It Is displaying abstract text and titles of documents. Detail view and data file access was not granted - just appearing in search result view.
I am turning this button off for the short term until it can be implemented with the 'mlt' handler:
According to the solr doc: http://wiki.apache.org/solr/MoreLikeThis
The mlt component query strategy does not apply the fq filtering to the mlt results. For filtering to be applied, the More Like This Handler must be used:
http://wiki.apache.org/solr/MoreLikeThisHandler.
History
#1 Updated by Skye Roseboom over 12 years ago
removed the button from brief.jsp and have committed to trunk and 1.0.0 branch for 1.0.2 patch release.
#2 Updated by Skye Roseboom over 12 years ago
- Subject changed from ONEMercury 'find similar data' not respecting private data. to ONEMercury 'find similar data' not respecting private sci-meta data.
#3 Updated by Dave Vieglais over 12 years ago
Perhaps the SOLR search handler could be configured to add a "isPublic:true" restriction to all queries? Then all requests from Mercury would only access public content.
The negative would be that the filter would also be applied to requests coming in through the search API call - but that may be a benefit until access control in search is sorted out.
#4 Updated by Skye Roseboom over 12 years ago
Hi Dave!
The solr search handler for both mercury and the DataONE rest endpoint both append an isPublic:true to queries using the solr 'fq' (filter query) parameter that is used to apply filters on queries.
This issue only effects the 'MLT' (more like this) solr feature. Using the SolrSearchHandler (exposed on the solr /select/ endpoint) allows mlt parameters to be used separate from the main query parameter ('q'). For whatever reason, the mlt results do not have the filter query (fq) filters applied to them. I don't see any way to apply additional filters to the mlt results - http://wiki.apache.org/solr/MoreLikeThis by rewriting a query. The solr 'mlt' matching logic does not know or respect 'isPublic' field.
It does appear the 'mlt' search handler (exposed on the solr /mlt/ endpoint) implementation does claim to support filter querying. This will require a bit of a re-write in mercury search to make use of the mlt search handler rather than the default SolrSearchHandler.
Stack overflow discussion of topic: http://stackoverflow.com/questions/7612279/how-to-constrain-filter-more-like-this-results-in-solr
#5 Updated by Skye Roseboom over 12 years ago
- Position changed from 1 to 467
- Target version changed from Sprint-2012.25-Block.4.1 to Sprint-2012.27-Block.4.2
- Position set to 1
#6 Updated by Skye Roseboom over 12 years ago
- Position set to 9
- Position deleted (
471)
#7 Updated by Skye Roseboom over 12 years ago
- Status changed from In Progress to Closed
tested with 1.0.2 patch release on sandbox.