Class SolrMethods

java.lang.Object
io.toro.martini.SolrMethods

public final class SolrMethods extends Object

Provides one-liners for performing Solr operations. Included in this class are one-liners for getting the SolrClient of a Solr core, executing query statements against a core, easily creating schemas out of models, and others.

  • Constructor Details

    • SolrMethods

      @Autowired SolrMethods(io.toro.martini.solr.SolrClientProvider<io.toro.martini.solr.MartiniSolrClient> solrClientProvider, io.toro.martini.solr.SolrSearchServiceFactory solrSearchServiceFactory, io.toro.martini.solr.util.PackageSolrRegistry solrRegistry)
  • Method Details

    • deleteById

      @GloopObjectParameter("output{\nupdateResponse#io.toro.martini.solr.UpdateResponse{\n }\n}") public static GloopModel deleteById(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowNull=false) List<String> ids) throws SolrServerException, IOException
      Delete Solr documents by ID.
      Parameters:
      coreName - the name of the Solr core where the document belongs
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      ids - the IDs of all Solr documents to be deleted
      Returns:
      the response of the Solr server to the delete operation
      Throws:
      SolrServerException - if there is an error on the server
      IOException - if there is a low-level I/O error
      Since:
      1.0
    • deleteByQueryString

      public static UpdateResponse deleteByQueryString(String coreName, String packageName, String query) throws SolrServerException, IOException
      Delete Solr documents by query.
      Parameters:
      coreName - the name of the Solr core where the document belongs
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      query - query selecting which Solr documents to delete
      Throws:
      SolrServerException - if there is an error on the server
      IOException - if there is a low-level I/O error
      Since:
      1.0
    • deleteByQuery

      @GloopObjectParameter("output{\nupdateResponse#io.toro.martini.solr.UpdateResponse{\n }\n}") public static GloopModel deleteByQuery(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowNull=false) String query) throws SolrServerException, IOException
      Delete Solr documents by query.
      Parameters:
      coreName - the name of the Solr core where the document belongs
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      query - query selecting which Solr documents to delete
      Returns:
      the response of the Solr server to the delete operation
      Throws:
      SolrServerException - if there is an error on the server
      IOException - if there is a low-level I/O error
      Since:
      1.0
    • deleteAll

      @GloopObjectParameter("output{\nupdateResponse#io.toro.martini.solr.UpdateResponse{\n }\n}") public static GloopModel deleteAll(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(defaultValue="true") boolean commit) throws SolrServerException, IOException
      Deletes all documents from the specified Solr core by issuing a delete-by-query using the wildcard query *:*.
      Parameters:
      coreName - the name of the Solr core to clear
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the workflow or service is invoked
      commit - if true, immediately commits the deletion so the index is empty and queryable at once; if false, the deletion is buffered until the next commit
      Returns:
      the response of the Solr server to the delete operation
      Throws:
      SolrServerException
      IOException
    • addCore

      @Deprecated public static void addCore(@GloopParameter(allowNull=false) String coreName, @GloopParameter(allowNull=false) String modelNamespace, @GloopParameter(defaultValue="id") String uniqueKey, String packageName) throws IOException
      Deprecated.
      use addCore(String, String) instead. No longer supports modelNamespace and uniqueKey parameters due to the removal of embedded solr support.
      Configures a Solr core with the schema based on a data model. Adds the configured Solr core to the provided package name.
      Parameters:
      coreName - the name of the to-be-generate Solr core
      modelNamespace - the namespace of the model to be used as the basis of the Solr schema
      uniqueKey - the unique key of the Solr schema; default is id
      packageName - the name of the package where the Solr core will be added if empty, this will assume the name of the package where the service is invoked
      Throws:
      IOException
      Since:
      1.1
    • addCore

      public static void addCore(@GloopParameter(allowNull=false) String coreName, String packageName) throws IOException
      Adds the configured Solr core to the provided package name.
      Parameters:
      coreName - the name of the Solr core
      packageName - the name of the package where the Solr core will be added; if empty, this will assume the name of the package where the service is invoked
      Throws:
      IOException
      Since:
      3.0.0
    • removeCore

      @Deprecated public static void removeCore(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(defaultValue="false") boolean removeFiles)
      Deprecated.
      use removeCore(String, String) instead. No longer supports removeFiles parameter due to the removal of embedded solr support.
      Removes an existing Solr core from a Martini package.
      Parameters:
      coreName - the name of the existing Solr core
      packageName - the name of the package where the Solr core resides if empty, this will assume the name of the package where the service is invoked
      removeFiles - the flag that indicates whether to remove the core's configuration files; default is false
      Since:
      1.1
    • removeCore

      public static void removeCore(@GloopParameter(allowNull=false) String coreName, String packageName)
      Removes an existing Solr core from a Martini package.
      Parameters:
      coreName - the name of the existing Solr core
      packageName - the name of the package where the Solr core resides if empty, this will assume the name of the package where the service is invoked
      Since:
      3.0.0
    • writeDataModelToIndex

      @GloopObjectParameter("output{\nupdateResponse#io.toro.martini.solr.UpdateResponse{\n }\n}") public static GloopModel writeDataModelToIndex(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowNull=false) GloopModel dataModel) throws SolrServerException, IOException

      Index a document. This one-liner allows the caller to add a new document or update an existing one, depending on the provided arguments.

      Solr will rely on the Solr core's configured schema to identify which properties of the model to index.

      When updating a document, updates are partial. Only provided fields will be indexed. This one-liner also works with data models with FieldModifier properties. FieldModifier properties mirror Solr's modifier argument for SolrInputDocuments.

      Parameters:
      coreName - the name of the Solr core where the document will belong
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the workflow or service is invoked
      dataModel - the data model to index
      Returns:
      the response of the Solr server to the index operation
      Throws:
      SolrServerException - if there is an error on the server
      IOException - if there is a communication error within the server
      Since:
      2.8.0
      See Also:
    • writeToIndex

      public static UpdateResponse writeToIndex(String coreName, String packageName, Object bean) throws IOException, SolrServerException

      Index a document. This one-liner allows the caller to add a new document or update an existing one, depending on the provided arguments.

      To index a new bean, its class's fields must be annotated with Field for Solr to know which fields to index.

      To update all the fields of a document in Solr, the new bean must be created with the ID of the existing document. With this, the one-liner will replace the existing document entirely with the new bean's data.

      To partially update a Solr document, one must create a SolrInputDocument and populate the fields using Solr's mechanism for updating Solr fields. For example, assume the following document exists in the core:

       {
           "id": "230498302",
           "price": 10,
           "popularity": 42,
           "categories": [ "kids" ],
           "promo_ids": [ "a123x" ],
           "tags": [ "free_to_try", "buy_now", "clearance", "on_sale" ]
       }
       
      In order to update only the price field, the caller should pass the following SolrInputDocument to this one-liner:
       SolrInputDocument document = new SolrInputDocument();
       document.setField( "id", "230498302" )
       Mapinvalid input: '<'String,Object> modifier = new HashMapinvalid input: '<'>();
       modifier.put( "set", 500 );
       document.setField( "price", modifier );
       

      Parameters:
      coreName - the name of the Solr core where the document will belong
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      bean - the bean to index
      Returns:
      the response of the Solr server to the index operation
      Throws:
      IOException - if there is a communication error within the server
      SolrServerException - if there is an error on the server
      Since:
      1.0
      See Also:
    • writeToIndex

      @Deprecated(since="2.8.0") @GloopObjectParameter("output{\nupdateResponse#io.toro.martini.solr.UpdateResponse{\n }\n}") public static GloopModel writeToIndex(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowNull=false) GloopModel gloopModel) throws IOException, SolrServerException

      Index a document. This one-liner allows the caller to add a new document or update an existing one, depending on the provided arguments.

      Solr will rely on the Solr core's configured schema to identify which properties of the model to index.

      When updating a document, updates are partial. Only provided fields will be indexed. This one-liner also works with Gloop models with FieldModifier properties. FieldModifier properties mirror Solr's modifier argument for SolrInputDocuments.

      Parameters:
      coreName - the name of the Solr core where the document will belong
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      gloopModel - the model to index
      Returns:
      the response of the Solr server to the index operation
      Throws:
      IOException - if there is a communication error within the server
      SolrServerException - if there is an error on the server
      Since:
      1.0
      See Also:
    • commit

      public static void commit(@GloopParameter(allowNull=false) String coreName, String packageName) throws IOException, SolrServerException
      Explicitly commits all pending documents to the specified Solr core. Use this after direct index operations to make documents visible to queries without relying on the cursor's automatic commit mode.
      Parameters:
      coreName - the name of the Solr core to commit
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the workflow or service is invoked
      Throws:
      IOException
      SolrServerException
    • query

      public static QueryResponse query(String coreName, String packageName, Map<String,String> solrParams)
      Query a Solr core.
      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      solrParams - Solr query parameters
      Returns:
      the response of the Solr server to the query
      Since:
      1.0
    • query

      @GloopObjectParameter("output{\nqueryResponse#io.toro.martini.solr.QueryResponse{\n }\n}") public static GloopModel query(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowExtraProperties=false) @GloopObjectParameter("solrParams[]{\n paramKey\n paramValue\n}") List<GloopModel> solrParams)
      Query a Solr core.
      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      solrParams - Solr query parameters
      Returns:
      the response of the Solr server to the query
      Since:
      1.0
    • queryByMultiMap

      public static QueryResponse queryByMultiMap(String coreName, String packageName, Map<String,String[]> solrParams)
      Query a Solr core.
      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      solrParams - Solr query parameters
      Returns:
      the response of the Solr server to the query
      Since:
      1.0
    • fieldValueFacetSearch

      @GloopObjectParameter("output{\nfieldValueFacet#io.toro.martini.solr.Facet{\n }\n}") public static GloopModel fieldValueFacetSearch(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowNull=false) String fieldName, @GloopParameter(allowExtraProperties=false) @GloopObjectParameter("solrParams[]{\n paramKey\n paramValue\n}") List<GloopModel> solrParams)

      Perform a faceted search for a specific field.

      Results include the unique values found for the specified field, and the total number of documents where each value is found.

      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      fieldName - the name of the field that should be treated as a facet
      solrParams - Solr query parameters
      Returns:
      field-value faceting results
      Since:
      1.1
      See Also:
    • fieldValueFacetSearch

      public static io.toro.martini.solr.Facet fieldValueFacetSearch(String coreName, String packageName, String fieldName, Map<String,Collection<String>> solrParams)

      Perform a faceted search for a specific field.

      Results include the unique values found for the specified field, and the total number of documents where each value is found.

      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      fieldName - the name of the field that should be treated as a facet
      solrParams - Solr query parameters
      Returns:
      field-value faceting results
      Since:
      1.1
      See Also:
    • multiFieldValueFacetSearch

      public static List<io.toro.martini.solr.Facet> multiFieldValueFacetSearch(String coreName, String packageName, Map<String,Collection<String>> solrParams)

      Perform a faceted search for a specific set of fields.

      Results include the unique values found for each field, and the total number of documents where each value is found.

      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      solrParams - Solr query parameters; should have at least one facet.field parameter
      Returns:
      field-value faceting results
      Since:
      1.1
      See Also:
    • multiFieldValueFacetSearch

      @GloopObjectParameter("output{\nfieldValueFacet#io.toro.martini.solr.Facet[]{\n }\n}") public static GloopModel multiFieldValueFacetSearch(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowExtraProperties=false) @GloopObjectParameter("solrParams[]{\n paramKey\n paramValue\n}") List<GloopModel> solrParams)

      Perform a faceted search for a specific set of fields.

      Results include the unique values found for each field, and the total number of documents where each value is found.

      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      solrParams - Solr query parameters; should have at least one facet.field parameter
      Returns:
      field-value faceting results
      Since:
      1.1
      See Also:
    • rangeFacetSearch

      public static <B, G> io.toro.martini.solr.RangeFacet<B,G> rangeFacetSearch(String coreName, String packageName, String fieldName, Map<String,Collection<String>> solrParams)

      Perform a range faceted search for a specific field.

      Results include the values found for the field within the specified range, and the total number of documents where each value is found.

      Type Parameters:
      B - data type for the lower and upper bound of the ranges
      G - data type for gap
      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      fieldName - the name of the field that should be treated as a facet
      solrParams - Solr query parameters
      Returns:
      range faceting results
      Since:
      1.1
    • rangeFacetSearch

      @GloopObjectParameter("output{\nrangeFacet#io.toro.martini.solr.FacetRange{\n }\n}") public static GloopModel rangeFacetSearch(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowNull=false) String fieldName, @GloopParameter(allowExtraProperties=false) @GloopObjectParameter("solrParams[]{\n paramKey\n paramValue\n}") List<GloopModel> solrParams)

      Perform a range faceted search for a specific field.

      Results include the values found for the field within the specified range, and the total number of documents where each value is found.

      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      fieldName - the name of the field that should be treated as a facet
      solrParams - Solr query parameters
      Returns:
      range faceting results
      Since:
      1.1
    • pivotFacetSearch

      public static io.toro.martini.solr.PivotFacet pivotFacetSearch(String coreName, String packageName, String fieldName, Map<String,Collection<String>> solrParams)

      Perform a pivot faceted search for a specific field.

      Results include the values found for each pivot field, and the total number of documents where each value is found.

      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      fieldName - the name of the field that should be treated as a facet
      solrParams - Solr query parameters
      Returns:
      pivot faceting results
      Since:
      1.1
    • pivotFacetSearch

      @GloopObjectParameter("output{\npivotFacet#io.toro.martini.solr.PivotField{\n }\n}") public static GloopModel pivotFacetSearch(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowNull=false) String fieldName, @GloopParameter(allowExtraProperties=false) @GloopObjectParameter("solrParams[]{\n paramKey\n paramValue\n}") List<GloopModel> solrParams)

      Perform a pivot faceted search for a specific field.

      Results include the values found for each pivot field, and the total number of documents where each value is found.

      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      fieldName - the name of the field that should be treated as a facet
      solrParams - Solr query parameters
      Returns:
      pivot faceting results
      Since:
      1.1
    • multiPivotFacetSearch

      public static List<io.toro.martini.solr.PivotFacet> multiPivotFacetSearch(String coreName, String packageName, Map<String,Collection<String>> solrParams)

      Perform a multi pivot faceted search.

      Results include the values found for each pivot field, and the total number of documents where each value is found.

      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      solrParams - Solr query parameters; should have at least one facet.pivot parameter
      Returns:
      pivot faceting results
      Since:
      1.1
    • multiPivotFacetSearch

      @GloopObjectParameter("output{\npivotFacet#io.toro.martini.solr.PivotField[]{\n }\n}") public static GloopModel multiPivotFacetSearch(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowExtraProperties=false) @GloopObjectParameter("solrParams[]{\n paramKey\n paramValue\n}") List<GloopModel> solrParams)

      Perform a multi pivot faceted search.

      Results include the values found for each pivot field, and the total number of documents where each value is found.

      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      solrParams - Solr query parameters; should have at least one facet.pivot parameter
      Returns:
      pivot faceting results
      Since:
      1.1
    • fieldStatisticsSearch

      public static io.toro.martini.solr.Stats fieldStatisticsSearch(String coreName, String packageName, String fieldName, Map<String,Collection<String>> solrParams)

      Generate statistics for a certain field.

      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      fieldName - the field for which statistics should be generated
      solrParams - Solr query parameters
      Returns:
      statistics for the specified field
      Since:
      1.1
    • fieldStatisticsSearch

      @GloopObjectParameter("output{\nstats#io.toro.martini.solr.FieldStatsInfo{\n }\n}") public static GloopModel fieldStatisticsSearch(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowNull=false) String fieldName, @GloopParameter(allowExtraProperties=false) @GloopObjectParameter("solrParams[]{\n paramKey\n paramValue\n}") List<GloopModel> solrParams)

      Generate statistics for a certain field.

      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      fieldName - the field for which statistics should be generated
      solrParams - Solr query parameters
      Returns:
      statistics for the specified field
      Since:
      1.1
    • multiFieldStatisticsSearch

      public static List<io.toro.martini.solr.Stats> multiFieldStatisticsSearch(String coreName, String packageName, Map<String,Collection<String>> solrParams)

      Generate statistics for one or more fields.

      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      solrParams - Solr query parameters
      Returns:
      statistics for the specified field
      Since:
      1.1
    • multiFieldStatisticsSearch

      @GloopObjectParameter("output{\nstats#io.toro.martini.solr.FieldStatsInfo[]{\n }\n}") public static GloopModel multiFieldStatisticsSearch(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowExtraProperties=false) @GloopObjectParameter("solrParams[]{\n paramKey\n paramValue\n}") List<GloopModel> solrParams)

      Generate statistics for one or more fields.

      Parameters:
      coreName - the name of the Solr core which will receive the query
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      solrParams - Solr query parameters
      Returns:
      statistics for the specified field
      Since:
      1.1
    • searchCore

      @GloopObjectParameter("output{\nqueryResponse#io.toro.martini.solr.QueryResponse{\n }\n}") public static GloopModel searchCore(@GloopParameter(defaultValue="*:*") String query, @GloopParameter(allowNull=false) String coreName, String packageName, String sortField, @GloopParameter(choices={"Ascending","Descending"},defaultValue="Ascending") String sortType, List<String> fields, @GloopParameter(defaultValue="10") int pageSize, @GloopParameter(defaultValue="1") int page)
      Search a Solr core.
      Parameters:
      query - the search query; default is *:*
      coreName - the name of the Solr core which will receive the query; if empty, this will assume that all records are being queried
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      sortField - the field which the sorting will be based on
      sortType - the order in which the results are given; default is Ascending
      fields - the list of fields to include in the response if empty, this will include all fields
      pageSize - the number of results to display in a page; default is 10
      page - the page number of results to display; default is 1
      Returns:
      the response of the Solr server to the query
      Since:
      1.1
    • solr

      public static io.toro.martini.solr.MartiniSolrClient solr(String coreName) throws ToroException

      Get the SolrClient of a named Solr core, belonging to the package in the current context.

      Example usage:

       def solr = 'media_store'.solr()
       def query = new SolrQuery( 'q=videoinvalid input: '&sort'=price desc' )
       def queryResult = solr.query( query )
       

      Parameters:
      coreName - the name of the Solr core
      Returns:
      the Solr core's SolrClient
      Throws:
      ToroException
      Since:
      1.0
    • solr

      public static io.toro.martini.solr.MartiniSolrClient solr(String coreName, GloopExecutionContext context) throws ToroException

      Get the SolrClient of a named Solr core, belonging to the package in the current context.

      Example usage:

       def solr = 'media_store'.solr()
       def query = new SolrQuery( 'q=videoinvalid input: '&sort'=price desc' )
       def queryResult = solr.query( query )
       

      Parameters:
      coreName - the name of the Solr core
      Returns:
      the Solr core's SolrClient
      Throws:
      ToroException
      Since:
      1.0
    • openDocumentOutputCursor

      @GloopObjectParameter("outputCursor{\n outputCursor[]*{\n }\n }") public static GloopCursor openDocumentOutputCursor(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(defaultValue="On Close",choices={"Never","Batch","On Close"}) String commitMode, @GloopParameter(defaultValue="false") boolean closeClient, @GloopParameter(defaultValue="1000") int batchSize, GloopExecutionContext context)

      Opens a cursor for streaming Solr document output, document by document, without accumulating the full documents in memory. Use this instead of the other functions when writing a large number of documents.

      The cursor can be used in as output array of a repeat node of a workflow or an iterate step of a service. The cursor is automatically closed at the end of the execution.

      Parameters:
      coreName - the name of the Solr core where the document will belong
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the workflow or service is invoked
      commitMode - tells the cursor when to commit the cached documents; default is On Close. Possible values are:
      • Never - do not commit any documents to Solr
      • Batch - only commit the documents when the specified batch size is satisfied
      • On Close - commit documents only when the cursor is closed
      closeClient - boolean value indicating whether the cursor will close the client after it has been exhausted; default is false
      batchSize - how many written models to cache before sending them to Solr; default is 1000
      context - the Gloop execution context (automatically mapped by Gloop)
      Returns:
      an output cursor that can be used to append data models to
      Since:
      2.8.0
    • insertMany

      @Deprecated(since="2.8.0") public static GloopCursor insertMany(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowNull=false,defaultValue="On Close",choices={"Never","Batch","On Close"}) String commitMode, @GloopParameter(allowNull=false,defaultValue="false") boolean closeClient, GloopExecutionContext context)
      Open a Gloop cursor that accepts Gloop models. These Gloop models are converted to a SolrInputDocument, allowing Gloop to write models to Solr.
      Parameters:
      coreName - the name of the Solr core where the document will belong
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      commitMode - tells the cursor when to commit the cached documents; possible values are:
      • Never - do not commit any documents to Solr
      • Batch - only commit the documents when the specified batch size is satisfied
      • On Close - commit documents only when the cursor is closed
      closeClient - boolean value indicating whether or not the cursor will close the client after it has been exhausted
      context - the Gloop execution context (automatically mapped by Gloop)
      Returns:
      a cursor capable of accepting models that will be written over to Solr
    • insertMany

      @Deprecated(since="2.8.0") public static GloopCursor insertMany(@GloopParameter(allowNull=false) String coreName, String packageName, @GloopParameter(allowNull=false,defaultValue="On Close",choices={"Never","Batch","On Close"}) String commitMode, @GloopParameter(allowNull=false,defaultValue="false") boolean closeClient, @GloopParameter(allowNull=false,defaultValue="1000") int batchSize, GloopExecutionContext context)
      Open a Gloop cursor that accepts Gloop models. These Gloop models are converted to a SolrInputDocument, allowing Gloop to write models to Solr.
      Parameters:
      coreName - the name of the Solr core where the document will belong
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the service is invoked
      commitMode - tells the cursor when to commit the cached documents; possible values are:
      • Never - do not commit any documents to Solr
      • Batch - only commit the documents when the specified batch size is satisfied
      • On Close - commit documents only when the cursor is closed
      closeClient - boolean value indicating whether or not the cursor will close the client after it has been exhausted
      batchSize - how many written models to cache before sending them to Solr
      context - the Gloop execution context (automatically mapped by Gloop)
      Returns:
      a cursor capable of accepting models that will be written over to Solr
    • reloadCore

      public static void reloadCore(@GloopParameter(allowNull=false) String coreName, String packageName) throws SolrServerException, IOException
      Reloads the specified Solr core, applying any configuration changes made since it was last loaded. This does not require restarting Martini.
      Parameters:
      coreName - the name of the Solr core to reload
      packageName - the name of the package where the Solr core resides; if empty, this will assume the name of the package where the workflow or service is invoked
      Throws:
      SolrServerException
      IOException