The textproc/opensearch port

opensearch-2.14.0 – distributed and RESTful search engine (cvsweb github mirror)


OpenSearch is a community-driven, open source search and analytics suite
derived from the Apache 2.0 licensed Elasticsearch 7.10.2
WWW: https://www.opensearch.org/


| Running ${PKGSTEM} on OpenBSD

Initial Node/Cluster Configuration

Configuration files are located in ${SYSCONFDIR}/opensearch

The security plugin is enabled by default and needs to be configured
before starting OpenSearch.
For demo/testing purposes, basic security configuration can be created
by running:

	# doas -u _opensearch \

Upstream documentation:

By default, OpenSearch binds to a localhost addresses. Since OpenBSD does
not support IPv4 to IPv6 address mapping, either IPv4 or IPv6 can be
used, but not both of them (see JDK/JRE package README for more details.)

Thus by default OpenSearch will bind to and will not be useful
for anything except testing.

After configuring network.host to non-default localhost address,
OpenSearch will assume it's in "production" mode and will enforce
the following bootstrap checks:
- maximum number of open file descriptors must be >= 65535 (see below)
- discovery.seed_hosts and cluster.initial_cluster_manager_nodes
  must be configured in ${SYSCONFDIR}/opensearch/opensearch.yml

Upstream documentation:

Resource Limits: File Descriptors

A sample login class has been provided in /etc/login.conf.d/elasticsearch.
To raise the default system limit, adjust kern.maxfiles:

	# sysctl kern.maxfiles=65535
	# echo kern.maxfiles=65535 >> /etc/sysctl.conf

For a busy OpenSearch node with lots of indexes, maxfiles/openfiles limits
should be increased even more, e.g. 131070.

You can query the number of open file descriptors along with the maximum
allowed by running

	$ ftp -S dont -o - 'https://admin:admin@localhost:9200/_nodes/stats/process?pretty'

and searching for "open_file_descriptors" and "max_file_descriptors"

Resource Limits: Maximum Number of File Locks

If you are getting "java.io.IOException: No locks available" errors,
increase kern.maxlocksperuid over the default of 1024:

	# sysctl kern.maxlocksperuid=2048
	# echo kern.maxlocksperuid=2048 >> /etc/sysctl.conf

OpenSearch Plugins Management

Installing plugins may involve running Java code which can download and
execute arbitrary code from the Internet.  To avoid running these tasks
as root, use doas(1):

	# doas -u _opensearch \
	    ${TRUEPREFIX}/opensearch/bin/opensearch-plugin install ...

Migrate from ElasticSearch

There are different approaches to migrate from ElasticSearch to
OpenSearch.  Upstream documents three migration strategies:

Regardless of the approach choosen, to safeguard against data loss, is
recommend to take a snapshot of all indices prior to any migration.


Omar Polo, Pavel Korovin

Only for arches

aarch64 amd64 i386 sparc64


devel java textproc

Build dependencies

Run dependencies