Name: elastic_search
Owner: PwC Experience Center
Description: Drupal 8 Elasticsearch >=5.0 implementation
Created: 2017-05-24 11:21:30.0
Updated: 2018-05-07 06:16:56.0
Pushed: 2018-02-08 13:58:34.0
Homepage: null
Size: 965
Language: PHP
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
The elastic_search module attempts to put elastic search paradigms at the heart of drupal searching. Although Search API is great it is heavily built around Solr concepts and as such it does not translate directly to the way elastic search works. This is an attempt to bring elastic search ideas directly in to drupal.
This means:
* Directly configure and push elastic search mappings from your drupal instance
* Full mapping of entity fields to elastic search field types. With all current elastic search options available
* Uses the elasticsearch/elasticsearch libary
* Module controls the indexes for you, to fully exploit multilingual analysers and optimize document structure
* Entity references are converted to inline documents (up to depth X) for full searching capability
* Content types can be excluded from the index, or made to be mapped as inner documents / children only
* Easy to extend type mappings to your custom fields by implementing an event subscriber
* Easy to add field data normalization via a plugin
This module is only for mapping and indexing of content with elastic search. You will need additional modules to display result content, such as the soon to be published Elastic Search View . This module could also be integrated with Elastic Search Helper as it decouples the mapping and indexing of documents from their retrieval.
See the /docs folder for the full git book on configuring this module. Or see https://ibrows.github.io/elastic_search/
Elastic Search Views Use elastic search to provide views results data, can be rendered from local db or display elastic json response directly for decoupled FE designs
Index documents in bulk and update indexes and mappings in small groups. This seems to produce the best results for cluster memory and to reduce potential timeouts By default index and mapping operations are done 1 at a time and documents are indexed in batches of 100. These settings can be changed on the server config page Because batches involve writing to the database you need to be careful that the total number does not cause an insert query which is too large. 100-200 is optimal
Debug logging in elasticsearch uses print_r and the drupal log reports pages dont want to show this. If you need to debug with this you are best looking directly at the watchdog table or using drupal console
elastic_search uses Mockery for test mocking because of a bug in the phpunit version that drupal requires which prevents some classes from being mocked. All elastic_search features are tested using Drupal Module Tester and codeship.
The dev folder contains a complete docker environment that can be used to develop this module. See the /docs folder for the full git book on developing and extending this module.
We use Github and a gitflow pull request workflow. Each pull request should have a related and cross-linked drupal.org issue.
For the testing to run correctly the following branch naming patterns should be observed:
PR's will not be accepted without passing tests!
https://github.com/ibrows/elastic_search
We welcome contributions in the following areas
Please do not submit code style or readme punctuation updates that add no value to the plugin.
Current Maintainers:
Past contributors:
This project has been sponsored by: