Semantic MediaWiki and related extensions
ElasticStore

Requirements | Features | Setup | https://github.com/SemanticMediaWiki/SemanticMediaWiki/blob/master/src/Elastic/docs/usage.md "Usage" | https://github.com/SemanticMediaWiki/SemanticMediaWiki/blob/master/src/Elastic/docs/config.md "Settings" | https://github.com/SemanticMediaWiki/SemanticMediaWiki/blob/master/src/Elastic/docs/technical.md "Technical notes" | https://github.com/SemanticMediaWiki/SemanticMediaWiki/blob/master/src/Elastic/docs/faq.md "FAQ"

The ElasticStore provides a framework to replicate Semantic MediaWiki related data to an Elasticsearch cluster and enable its QueryEngine to send #ask requests and retrieve information from Elasticsearch (aka ES) instead of the default SQLStore.

The objective is to provide an interface to Elasticsearch to:

Requirements

The ElasticStore relies on the elasticsearch php-api to communicate with Elasticsearch directly and is therefore independent of any other vendor or MediaWiki extension that may use Elasticsearch as search backend (e.g. CirrusSearch).

It is recommended to:

Features

The ElasticStore provides the same query features (given those are tested) as the SQLStore making its functionality equivalent to the SQLStore but provides better support for free text matches or for unstructured text (if enabled) when retrieved from an article or file. Furthermore, improved performance and scalability is expected especially when the document count becomes significant larger than 50000 articles or a lot of fulltext queries are executed.

Setup

Before the ElasticStore (hereby Elasticsearch) can be used as drop-in replacement for the existing SQLStore based QueryEngine the following settings and operations are required:

A more detailed introduction can be found as part of the https://github.com/SemanticMediaWiki/SemanticMediaWiki/blob/master/src/Elastic/docs/usage.md "usage" and https://github.com/SemanticMediaWiki/SemanticMediaWiki/blob/master/src/Elastic/docs/config.md "settings" section.

General notes

Elasticsearch is not expected to be used as data store replacement which means a RDMBS backend (MySQL, SQLite, or Postgres) is still required.

The ElasticStore provides a customized serialization format to transform and transfer the required data to Elasticsearch. The QueryEngine provides a #ask-ES DSL interpreter (see domain language) which ensures that any existing #ask query can be answered by the Elasticsearch cluster without changing its syntax when switching from a SQLStore (given that index process has been completed).


About | General disclaimer | Privacy policy