Skip to content

Solr

Not available until the next release main

Introduction

The Testcontainers module for Apache Solr, an open-source enterprise search platform built on Apache Lucene. It provides full-text search, faceting, hit highlighting, and real-time indexing capabilities.

Adding this module to your project dependencies

Please run the following command to add the Solr module to your Go dependencies:

go get github.com/testcontainers/testcontainers-go/modules/solr

Usage example

ctx := context.Background()

solrContainer, err := solr.Run(ctx, "solr:9",
    solr.WithCollection("myCollection"),
)
defer func() {
    if err := testcontainers.TerminateContainer(solrContainer); err != nil {
        log.Printf("failed to terminate container: %s", err)
    }
}()
if err != nil {
    log.Printf("failed to start container: %s", err)
    return
}

Module Reference

Run function

  • Not available until the next release main

The Solr module exposes one entrypoint function to create the Solr container, and this function receives three parameters:

func Run(ctx context.Context, img string, opts ...testcontainers.ContainerCustomizer) (*Container, error)
  • context.Context, the Go context.
  • string, the Docker image to use.
  • testcontainers.ContainerCustomizer, a variadic argument for passing options.

Image

Use the second argument in the Run function to set a valid Docker image. In example: Run(context.Background(), "solr:9").

Container Options

When starting the Solr container, you can pass options in a variadic way to configure it.

WithCollection

  • Not available until the next release main

WithCollection creates a named Solr collection after the container is ready. The collection is created using the solr create -c <name> command and is available immediately after Run returns.

solrContainer, err := solr.Run(ctx, "solr:9",
    solr.WithCollection("myCollection"),
)

The following options are exposed by the testcontainers package.

Basic Options

Lifecycle Options

Files & Mounts Options

Build Options

Logging Options

Image Options

Networking Options

Advanced Options

Experimental Options

Container Methods

The Solr container exposes the following methods:

Address

  • Not available until the next release main

Address returns the HTTP base URL of the Solr container in the form http://<host>:<port>/solr.

addr, err := solrContainer.Address(ctx)

CollectionURL

  • Not available until the next release main

CollectionURL returns the HTTP URL for a specific Solr collection in the form http://<host>:<port>/solr/<collection>.

url, err := solrContainer.CollectionURL(ctx, "myCollection")