Interface SolrLoggerService

All Known Implementing Classes:
SolrLoggerServiceImpl

public interface SolrLoggerService
Static holder for a HttpSolrClient connection pool to issue usage logging events to Solr from DSpace libraries, and some static query composers.
Author:
ben at atmire.com, kevinvandevelde at atmire.com, mdiggory at atmire.com
  • Method Details

    • post

      @Deprecated void post(DSpaceObject dspaceObject, jakarta.servlet.http.HttpServletRequest request, EPerson currentUser)
      Deprecated.
      Parameters:
      dspaceObject - the object used.
      request - the current request context.
      currentUser - the current session's user.
    • postView

      void postView(DSpaceObject dspaceObject, jakarta.servlet.http.HttpServletRequest request, EPerson currentUser)
      Store a usage event into Solr.
      Parameters:
      dspaceObject - the object used.
      request - the current request context.
      currentUser - the current session's user.
    • postView

      void postView(DSpaceObject dspaceObject, jakarta.servlet.http.HttpServletRequest request, EPerson currentUser, String referrer)
      Store a usage event into Solr.
      Parameters:
      dspaceObject - the object used.
      request - the current request context.
      currentUser - the current session's user.
      referrer - the optional referrer.
    • postView

      void postView(DSpaceObject dspaceObject, String ip, String userAgent, String xforwardedfor, EPerson currentUser)
    • postView

      void postView(DSpaceObject dspaceObject, String ip, String userAgent, String xforwardedfor, EPerson currentUser, String referrer)
    • postSearch

      void postSearch(DSpaceObject resultObject, jakarta.servlet.http.HttpServletRequest request, EPerson currentUser, List<String> queries, int rpp, String sortBy, String order, int page, DSpaceObject scope)
    • postWorkflow

      void postWorkflow(UsageWorkflowEvent usageWorkflowEvent) throws SQLException
      Throws:
      SQLException
    • storeParents

      void storeParents(org.apache.solr.common.SolrInputDocument doc1, DSpaceObject dso) throws SQLException
      Method just used to log the parents.
      • Community log: owning comms.
      • Collection log: owning comms and their comms.
      • Item log: owning colls/comms.
      • Bitstream log: owning item/colls/comms.
      Parameters:
      doc1 - the current SolrInputDocument
      dso - the current dspace object we want to log
      Throws:
      SQLException - if database error ignore it
    • isUseProxies

      boolean isUseProxies()
    • removeIndex

      void removeIndex(String query) throws IOException, org.apache.solr.client.solrj.SolrServerException
      Delete data from the index, as described by a query.
      Parameters:
      query - description of the records to be deleted.
      Throws:
      IOException - A general class of exceptions produced by failed or interrupted I/O operations.
      org.apache.solr.client.solrj.SolrServerException - Exception from the Solr server to the solrj Java client.
    • queryField

      Map<String,List<String>> queryField(String query, List oldFieldVals, String field) throws IOException
      Throws:
      IOException
    • markRobots

      void markRobots()
      Scan the entire 'statistics' collection for documents that should be marked 'isBot:true' according to SpiderDetector.isSpider(java.lang.String, java.lang.String, java.lang.String, java.lang.String).
    • deleteRobots

      void deleteRobots()
      Delete all 'statistics' documents having 'isBot:true'.
    • update

      void update(String query, String action, List<String> fieldNames, List<List<Object>> fieldValuesList) throws org.apache.solr.client.solrj.SolrServerException, IOException
      Throws:
      org.apache.solr.client.solrj.SolrServerException
      IOException
    • update

      void update(String query, String action, List<String> fieldNames, List<List<Object>> fieldValuesList, boolean commit) throws org.apache.solr.client.solrj.SolrServerException, IOException
      Update the solr core.
      Parameters:
      query - query indicating which documents to update
      action - the update action keyword
      fieldNames - the fields to update
      fieldValuesList - the values for the fields to update
      commit - whether to commit the changes
      Throws:
      org.apache.solr.client.solrj.SolrServerException
      IOException
    • query

      void query(String query, int max, int facetMinCount) throws org.apache.solr.client.solrj.SolrServerException, IOException
      Throws:
      org.apache.solr.client.solrj.SolrServerException
      IOException
    • queryFacetField

      ObjectCount[] queryFacetField(String query, String filterQuery, String facetField, int max, boolean showTotal, List<String> facetQueries, int facetMinCount) throws org.apache.solr.client.solrj.SolrServerException, IOException
      Query used to get values grouped by the given facet field.
      Parameters:
      query - the query to be used
      filterQuery - filter query
      facetField - the facet field on which to group our values
      max - the max number of values given back (in case of 10 the top 10 will be given)
      showTotal - a boolean determining whether the total amount should be given back as the last element of the array
      facetQueries - list of facet queries
      facetMinCount - Minimum count of results facet must have to return a result
      Returns:
      an array containing our results
      Throws:
      org.apache.solr.client.solrj.SolrServerException - Exception from the Solr server to the solrj Java client.
      IOException - passed through.
    • queryFacetDate

      ObjectCount[] queryFacetDate(String query, String filterQuery, int max, String dateType, String dateStart, String dateEnd, boolean showTotal, Context context, int facetMinCount) throws org.apache.solr.client.solrj.SolrServerException, IOException
      Query used to get values grouped by the date.
      Parameters:
      query - the query to be used
      filterQuery - filter query
      max - the max number of values given back (in case of 10 the top 10 will be given)
      dateType - the type to be used (example: DAY, MONTH, YEAR)
      dateStart - the start date Format:(-3, -2, ..) the date is calculated relatively on today
      dateEnd - the end date stop Format (-2, +1, ..) the date is calculated relatively on today
      showTotal - a boolean determining whether the total amount should be given back as the last element of the array
      context - The relevant DSpace Context.
      facetMinCount - Minimum count of results facet must have to return a result
      Returns:
      and array containing our results
      Throws:
      org.apache.solr.client.solrj.SolrServerException - Exception from the Solr server to the solrj Java client.
      IOException - passed through.
    • queryFacetQuery

      Map<String,Integer> queryFacetQuery(String query, String filterQuery, List<String> facetQueries, int facetMinCount) throws org.apache.solr.client.solrj.SolrServerException, IOException
      Throws:
      org.apache.solr.client.solrj.SolrServerException
      IOException
    • queryTotal

      ObjectCount queryTotal(String query, String filterQuery, int facetMinCount) throws org.apache.solr.client.solrj.SolrServerException, IOException
      Throws:
      org.apache.solr.client.solrj.SolrServerException
      IOException
    • query

      org.apache.solr.client.solrj.response.QueryResponse query(String query, String filterQuery, String facetField, int rows, int max, String dateType, String dateStart, String dateEnd, List<String> facetQueries, String sort, boolean ascending, int facetMinCount) throws org.apache.solr.client.solrj.SolrServerException, IOException
      Perform a solr query.
      Parameters:
      query - the query to be used
      filterQuery - filter query
      facetField - field to facet the results by
      rows - the max number of results to return
      max - the max number of facets to return
      dateType - the type to be used (example: DAY, MONTH, YEAR)
      dateStart - the start date Format:(-3, -2, ..) the date is calculated relatively on today
      dateEnd - the end date stop Format (-2, +1, ..) the date is calculated relatively on today
      facetQueries - list of facet queries
      sort - the sort field
      ascending - the sort direction (true: ascending)
      facetMinCount - Minimum count of results facet must have to return a result
      Throws:
      org.apache.solr.client.solrj.SolrServerException - Exception from the Solr server to the solrj Java client.
      IOException - passed through.
    • query

      org.apache.solr.client.solrj.response.QueryResponse query(String query, String filterQuery, String facetField, int rows, int max, String dateType, String dateStart, String dateEnd, List<String> facetQueries, String sort, boolean ascending, int facetMinCount, boolean defaultFilterQueries) throws org.apache.solr.client.solrj.SolrServerException, IOException
      Perform a solr query.
      Parameters:
      query - the query to be used
      filterQuery - filter query
      facetField - field to facet the results by
      rows - the max number of results to return
      max - the max number of facets to return
      dateType - the type to be used (example: DAY, MONTH, YEAR)
      dateStart - the start date Format:(-3, -2, ..) the date is calculated relatively on today
      dateEnd - the end date stop Format (-2, +1, ..) the date is calculated relatively on today
      facetQueries - list of facet queries
      sort - the sort field
      ascending - the sort direction (true: ascending)
      facetMinCount - Minimum count of results facet must have to return a result
      defaultFilterQueries - use the default filter queries
      Throws:
      org.apache.solr.client.solrj.SolrServerException - Exception from the Solr server to the solrj Java client.
      IOException - passed through.
    • shardSolrIndex

      void shardSolrIndex() throws IOException, org.apache.solr.client.solrj.SolrServerException
      Throws:
      IOException
      org.apache.solr.client.solrj.SolrServerException
    • reindexBitstreamHits

      void reindexBitstreamHits(boolean removeDeletedBitstreams) throws Exception
      Throws:
      Exception
    • exportHits

      void exportHits() throws Exception
      Export all SOLR usage statistics for viewing/downloading content to a flat text file. The file goes to a series
      Throws:
      Exception - if error
    • commit

      void commit() throws IOException, org.apache.solr.client.solrj.SolrServerException
      Commit the solr core.
      Throws:
      IOException
      org.apache.solr.client.solrj.SolrServerException
    • anonymizeIp

      Object anonymizeIp(String ip) throws UnknownHostException
      Anonymize a given ip
      Parameters:
      ip - The ip to anonymize.
      Throws:
      UnknownHostException