All Projects → geerlingguy → solr-container

geerlingguy / solr-container

Licence: MIT license
Ansible Container project that manages the lifecycle of Apache Solr on Docker.

Projects that are alternatives of or similar to solr-container

Ik Analyzer Solr
ik-analyzer for solr 7.x-8.x
Stars: ✭ 1,017 (+5882.35%)
Mutual labels:  solr, lucene
Springboot Templates
springboot和dubbo、netty的集成,redis mongodb的nosql模板, kafka rocketmq rabbit的MQ模板, solr solrcloud elasticsearch查询引擎
Stars: ✭ 100 (+488.24%)
Mutual labels:  solr, lucene
Vectorsinsearch
Dice.com repo to accompany the dice.com 'Vectors in Search' talk by Simon Hughes, from the Activate 2018 search conference, and the 'Searching with Vectors' talk from Haystack 2019 (US). Builds upon my conceptual search and semantic search work from 2015
Stars: ✭ 71 (+317.65%)
Mutual labels:  solr, lucene
SolrConfigExamples
Examples of Solr configuration entries for Solr plugins and Conceptual Search\Semantic Search from Simon Hughes Dice.com
Stars: ✭ 26 (+52.94%)
Mutual labels:  solr, lucene
Code4java
Repository for my java projects.
Stars: ✭ 164 (+864.71%)
Mutual labels:  solr, lucene
Hanlp Lucene Plugin
HanLP中文分词Lucene插件,支持包括Solr在内的基于Lucene的系统
Stars: ✭ 272 (+1500%)
Mutual labels:  solr, lucene
Jeeplatform
一款企业信息化开发基础平台,拟集成OA(办公自动化)、CMS(内容管理系统)等企业系统的通用业务功能 JeePlatform项目是一款以SpringBoot为核心框架,集ORM框架Mybatis,Web层框架SpringMVC和多种开源组件框架而成的一款通用基础平台,代码已经捐赠给开源中国社区
Stars: ✭ 1,285 (+7458.82%)
Mutual labels:  solr, lucene
jstarcraft-nlp
专注于解决自然语言处理领域的几个核心问题:词法分析,句法分析,语义分析,语种检测,信息抽取,文本聚类和文本分类. 为相关领域的研发人员提供完整的通用设计与参考实现. 涵盖了多种自然语言处理算法,适配了多个自然语言处理框架. 兼容Lucene/Solr/ElasticSearch插件.
Stars: ✭ 92 (+441.18%)
Mutual labels:  solr, lucene
Fxdesktopsearch
A JavaFX based desktop search application.
Stars: ✭ 147 (+764.71%)
Mutual labels:  solr, lucene
Querqy
Query preprocessor for Java-based search engines (Querqy Core and Solr implementation)
Stars: ✭ 122 (+617.65%)
Mutual labels:  solr, lucene
RelevancyTuning
Dice.com tutorial on using black box optimization algorithms to do relevancy tuning on your Solr Search Engine Configuration from Simon Hughes Dice.com
Stars: ✭ 28 (+64.71%)
Mutual labels:  solr, lucene
SolRDF
An RDF plugin for Solr
Stars: ✭ 115 (+576.47%)
Mutual labels:  solr, apache-solr
nlpir-analysis-cn-ictclas
Lucene/Solr Analyzer Plugin. Support MacOS,Linux x86/64,Windows x86/64. It's a maven project, which allows you change the lucene/solr version. //Maven工程,修改Lucene/Solr版本,以兼容相应版本。
Stars: ✭ 71 (+317.65%)
Mutual labels:  solr, lucene
Lucene Solr
Apache Lucene and Solr open-source search software
Stars: ✭ 4,217 (+24705.88%)
Mutual labels:  solr, lucene
IATI.cloud
The open-source IATI datastore for IATI data with RESTful web API providing XML, JSON, CSV output. It extracts and parses IATI XML files referenced in the IATI Registry and powered by Apache Solr.
Stars: ✭ 35 (+105.88%)
Mutual labels:  solr, apache-solr
Solrplugins
Dice Solr Plugins from Simon Hughes Dice.com
Stars: ✭ 86 (+405.88%)
Mutual labels:  solr, lucene
ltr-tools
Set of command line tools for Learning To Rank
Stars: ✭ 13 (-23.53%)
Mutual labels:  solr, apache-solr
kitodo-presentation
Kitodo.Presentation is a feature-rich framework for building a METS- or IIIF-based digital library. It is part of the Kitodo Digital Library Suite.
Stars: ✭ 33 (+94.12%)
Mutual labels:  solr, apache-solr
Ik Analyzer
支持Lucene5/6/7/8+版本, 长期维护。
Stars: ✭ 112 (+558.82%)
Mutual labels:  solr, lucene
solr
Apache Solr open-source search software
Stars: ✭ 651 (+3729.41%)
Mutual labels:  solr, lucene

Apache Solr Container (Built with Ansible)

CI Docker pulls

This project is composed of three main parts:

  • Ansible project: This project is maintained on GitHub: geerlingguy/solr-container. Please file issues, support requests, etc. against this GitHub repository.
  • Docker Hub Image: If you just want to use the geerlingguy/solr Docker image in your project, you can pull it from Docker Hub.
  • Ansible Role: If you need a flexible Ansible role that's compatible with both traditional servers and containerized builds, check out geerlingguy.solr on Ansible Galaxy. (This is the Ansible role that does the bulk of the work in managing the Apache Solr container.)

Versions

Currently maintained versions include:

  • 8.x, 8.11.1, latest: Apache Solr 8.x
  • 7.x, 7.7.3: Apache Solr 7.x
  • 6.x, 6.6.6: Apache Solr 6.x
  • 5.x, 5.5.5: Apache Solr 5.x
  • 4.x, 4.10.4: Apache Solr 4.x

Standalone Usage

If you want to use the geerlingguy/solr image from Docker Hub, you don't need to install or use this project at all. You can quickly build a Solr container locally with:

docker run -d --name=solr -p 8983:8983 geerlingguy/solr:latest /opt/solr/bin/solr start -p 8983 -f -force

(For Solr 4.x and 5.x, drop the final -force argument.)

You can also wrap up that configuration in a Dockerfile and/or a docker-compose.yml file if you want to keep things simple. For example:

```
version: "3"

services:
  solr:
    image: geerlingguy/solr:latest
    container_name: solr
    ports:
      - "8983:8983"
    restart: always
    # See 'Custom and Persistent Solr cores' for instructions for volumes.
    volumes: []
    command: ["/opt/solr/bin/solr", "start", "-p", "8983", "-f", "-force"]

Then run:

docker-compose up -d

Now you should be able to access the Solr admin dashboard at http://localhost:8983/.

Custom and Persistent Solr cores

The default installation includes a collection1 core in the SOLR_HOME directory, /var/solr.

Apache Solr will autodiscover any Solr cores in SOLR_HOME by searching for core.properties files inside each subdirectory. A standard convention for a single Solr core is to to mount a host directory as a volume with the core directory, containing the core's conf, data, and core.properties files.

Here's an example minimal core.properties file, for a core named mysearch:

name=mysearch
config=solrconfig.xml
schema=schema.xml
dataDir=data

So, if you have a solr core directory named mysearch (with a mysearch/core.properties file inside, and a conf and data directory for storing Solr configuration and index data, respectively), which looks like this:

mysearch_conf/
├── conf
│   ├── elevate.xml
│   ├── mapping-ISOLatin1Accent.txt
│   ├── protwords.txt
│   ├── _rest_managed.json
│   ├── schema_extra_fields.xml
│   ├── schema_extra_types.xml
│   ├── schema.xml
│   ├── solrconfig_extra.xml
│   ├── solrconfig.xml
│   ├── solrcore.properties
│   ├── stopwords.txt
│   └── synonyms.txt
├── core.properties
└── data

Mount it as a volume like -v ./mysearch:/var/solr/mysearch:rw. If you have multiple solr cores (all defined inside a cores directory), mount them inside a cores directory like -v ./cores:/var/solr/cores.

Or, if using a Docker Compose file:

services:
  solr:
    ...
    volumes:
      # If you have one core:
      - ./mysearch:/var/solr/mysearch:rw
      # If you have multiple cores:
      - ./cores:/var/solr/cores:rw

You can also mount volumes from a data container or elsewhere; the key is you will be able to both provide custom Solr configuration (schema.xml, solrconfig.xml, etc.), and also have a persistent data directory that lives outside the container.

Management with Ansible

Prerequisites

Before using this project to build and maintain a Solr images for Docker, you need to have the following installed:

Build the image

First, install Ansible role requirements:

ansible-galaxy install -r requirements.yml

Then, make sure Docker is running, and run the playbook to build the container:

ansible-playbook --extra-vars="@vars/7.x.yml" main.yml

(Substitute whatever supported Solr version you desire in the vars path) Once the image is built, you can run docker images to see the solr image that was generated.

Note: If you get an error like Failed to import docker, run pip install docker.

Push the image to Docker Hub

See the .github/workflows/build.yml file in this repository for how it pushes all the tagged images automatically on any commit to the master branch.

License

MIT / BSD

Author Information

This container build was created in 2017 by Jeff Geerling, author of Ansible for DevOps.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].