Class 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 Detail

      • SolrMethods

        @Autowired
        SolrMethods​(io.toro.martini.coder.development.SchemaWriter writer,
                    io.toro.martini.solr.SolrClientProvider<io.toro.martini.solr.MartiniSolrClient> solrClientProvider,
                    io.toro.martini.solr.SolrSearchServiceFactory solrSearchServiceFactory,
                    io.toro.martini.solr.PackageSolrCoreConfigurer packageSolrCoreConfigurer)
    • Method Detail

      • deleteById

        @GloopObjectParameter("output{\nupdateResponse#io.toro.martini.solr.UpdateResponse{\n  }\n}")
        public static GloopModel deleteById​(@GloopParameter(allowNull=false)
                                            String coreName,
                                            String packageName,
                                            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
        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
      • gloopModelToSolrSchema

        public static void gloopModelToSolrSchema​(@GloopParameter(allowNull=false)
                                                  String destination,
                                                  String packageName,
                                                  @GloopParameter(allowNull=false)
                                                  String modelNamespace)
                                           throws IOException
        Create a Solr schema based on a Gloop model.
        Parameters:
        destination - the destination directory of the to-be-generated Solr schema
        packageName - the name of the package where the Gloop model resides if empty, this will assume the name of the package where the service is invoked
        modelNamespace - the namespace of the model to be used as the basis of the Solr schema
        Throws:
        IOException
        Since:
        1.0
      • gloopModelToSolrSchema

        public static void gloopModelToSolrSchema​(@GloopParameter(allowNull=false)
                                                  String destination,
                                                  String packageName,
                                                  @GloopParameter(allowNull=false)
                                                  String modelNamespace,
                                                  @GloopParameter(defaultValue="id")
                                                  String uniqueKey)
                                           throws IOException
        Create a Solr schema based on a Gloop model.
        Parameters:
        destination - the destination directory of the to-be-generated Solr schema
        packageName - the name of the package where the Gloop model resides if empty, this will assume the name of the package where the service is invoked
        modelNamespace - the namespace of the model to be used as the basis of the Solr schema
        uniqueKey - the unique key of the Solr schema
        Throws:
        IOException
        Since:
        1.1
      • addCore

        public static void addCore​(@GloopParameter(allowNull=false)
                                   String coreName,
                                   @GloopParameter(allowNull=false)
                                   String modelNamespace,
                                   @GloopParameter(defaultValue="id")
                                   String uniqueKey,
                                   String packageName)
                            throws IOException
        Configures a Solr core with the schema based on a Gloop 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
        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
      • removeCore

        public static void removeCore​(@GloopParameter(allowNull=false)
                                      String coreName,
                                      String packageName,
                                      @GloopParameter(defaultValue="false")
                                      boolean removeFiles)
        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
        Since:
        1.1
      • solrSchemaToGloopModel

        public static void solrSchemaToGloopModel​(String name,
                                                  String schema,
                                                  String packageName,
                                                  String namespace,
                                                  Map<String,​String> resources)

        Create a Gloop model based on a Solr schema. This one-liner allows you to provide external resources needed in order to parse the schema.

        Consider the schema below:

         
         
             
                 
             
             
                 
             
         
         
         
        This schema requires the external XML configuration file enumConfig.xml to identify the valid choices for the priorityLevel field. To satisfy this requirement, the caller must add an entry to the resources map. The value would be the name of the file, which is enumConfig.xml, and the XML content of the file.

        Parameters:
        name - the name of the to-be-generated model
        schema - the content of the Solr schema which will be used as the basis of the Gloop model
        packageName - the name of the package where the Gloop model will reside; if empty, this will assume the name of the package where the service is invoked
        namespace - the namespace of the to-be-generated Gloop model; this dictates where the model will reside
        resources - a map of required resources (filename to file content) needed to properly parse the Solr schema
        Since:
        1.0
      • solrSchemaToGloopModel

        public static void solrSchemaToGloopModel​(@GloopParameter(allowNull=false)
                                                  String name,
                                                  @GloopParameter(allowNull=false)
                                                  String schema,
                                                  @GloopParameter(allowNull=false)
                                                  String packageName,
                                                  @GloopParameter(allowNull=false,defaultValue="model")
                                                  String namespace,
                                                  @GloopParameter(allowExtraProperties=false) @GloopObjectParameter("resources[]{\n  resourceName\n  resourceContent\n}")
                                                  List<GloopModel> resources)

        Create a Gloop model based on a Solr schema. This one-liner allows you to provide external resources needed in order to parse the schema.

        Consider the schema below:

         
         
             
                 
             
             
                 
             
         
         
         
        This schema requires the external XML configuration file enumConfig.xml to identify the valid choices for the priorityLevel field. To satisfy this requirement, the caller must add an entry to the resources map. The value would be the name of the file, which is enumConfig.xml, and the XML content of the file.

        Parameters:
        name - the name of the to-be-generated model
        schema - the content of the Solr schema which will be used as the basis of the Gloop model
        packageName - the name of the package where the Gloop model will reside; if empty, this will assume the name of the package where the service is invoked
        namespace - the namespace of the to-be-generated Gloop model; this dictates where the model will reside
        resources - an array of required resources (each indicating the filename and file content) needed to properly parse the Solr schema
        Since:
        1.0
      • 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" )
         Map modifier = new HashMap<>();
         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:
        Updating parts of documents
      • writeToIndex

        @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:
        Updating parts of documents
      • 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
        solrParams - Solr query parameters
        fieldName - the name of the field that should be treated as a facet
        Returns:
        field-value faceting results
        Since:
        1.1
        See Also:
        Faceting
      • 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
        solrParams - Solr query parameters
        fieldName - the name of the field that should be treated as a facet
        Returns:
        field-value faceting results
        Since:
        1.1
        See Also:
        Faceting
      • 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:
        Faceting
      • 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:
        Faceting
      • 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",allowNull=false)
                                            int pageSize,
                                            @GloopParameter(defaultValue="1",allowNull=false)
                                            int page)
        Search a Solr core.
        Parameters:
        query - the search query
        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
        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
        page - the page number of results to display
        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=video&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
      • insertMany

        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

        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