DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:elasticsearch

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
plugin:elasticsearch [2021-03-30 23:50] – version upped andiplugin:elasticsearch [2021-08-24 00:32] Klap-in
Line 2: Line 2:
  
 ---- plugin ---- ---- plugin ----
-description: Integrate Elasticsearch engine+description: Integrate an external Elasticsearch engine into DokuWiki
 author     : Andreas Gohr, Anna Dabrowska  author     : Andreas Gohr, Anna Dabrowska 
 email      : dokuwiki@cosmocode.de  email      : dokuwiki@cosmocode.de 
-type       : action +type       : action, cli 
-lastupdate : 2021-03-19 +lastupdate : 2021-06-10 
-compatible : Greebo+compatible : Greebo, Hogfather
 depends    :  depends    : 
 conflicts  conflicts 
Line 26: Line 26:
  
 :!: **External requirements:** This plugin requires the following additional components that must be installed separately:  :!: **External requirements:** This plugin requires the following additional components that must be installed separately: 
-  * [[https://www.elastic.co/products/elasticsearch|Elasticsearch]] instance (latest supported version 7.1)+  * [[https://www.elastic.co/products/elasticsearch|Elasticsearch]] instance (latest supported version 7.11)
  
 Install the plugin using the [[plugin:plugin|Plugin Manager]] and the download URL above, which points to latest version of the plugin. Refer to [[:Plugins]] on how to install plugins manually. Install the plugin using the [[plugin:plugin|Plugin Manager]] and the download URL above, which points to latest version of the plugin. Refer to [[:Plugins]] on how to install plugins manually.
Line 38: Line 38:
 All [[acl|access rights]] are respected, so users will only find pages for which they have at least read privileges. All [[acl|access rights]] are respected, so users will only find pages for which they have at least read privileges.
  
-You can use the Advanced Search Tools to filter the results by namespace and date of the last modification. +You can use the Advanced Search Tools to filter the results by namespace and date of the last modification.
  
 If the [[plugin:text|text plugin]] is installed, the rendered content of pages will be indexed in addition to raw wiki syntax. By default, search uses both fields. If you want to disable search in syntax, change the ''searchSyntax'' setting in the plugin's configuration. If the [[plugin:text|text plugin]] is installed, the rendered content of pages will be indexed in addition to raw wiki syntax. By default, search uses both fields. If you want to disable search in syntax, change the ''searchSyntax'' setting in the plugin's configuration.
Line 77: Line 77:
 If you have configured multiple languages using the [[plugin:translation|Translation plugin]], they will be mapped as well. If you have configured multiple languages using the [[plugin:translation|Translation plugin]], they will be mapped as well.
  
-At present there is no special filter that would let the user search in a particular language onlyHoweverit is possible to filter the results by language namespaces.+By default all available translation are searched. Users can change the language selection in Advanced Search Tools. 
 + 
 +You can also enable translation detection in the plugin configuration. The option is called ''detectTranslation''. When activated, the search will try to detect the current language context from the top namespace, and then set the language filter accordinglyFor exampleif the translation plugin is configured to handle the ''en es fr'' namespaces and the user starts the search when browsing the page ''es:capítulos:tres'', the language filter will be automatically set to ''es''.
  
 ==== Index management ==== ==== Index management ====
Line 88: Line 90:
 ./bin/plugin.php elasticsearch index ./bin/plugin.php elasticsearch index
 </code> </code>
 +
 +===== Other plugins =====
 +
 +The [[plugin:tagging|tagging plugin]] integrates well with Elasticsearch. You can search for tags explicitly using ''#sometag'' search terms. If any of the results are tagged, a tag filter will be added to Advanced Search Tools.
  
 ===== Development ===== ===== Development =====
 +
 +==== Plugin integration ====
 +
 +Elasticsearch emits several events that can be used by other plugins to put their own data into the search index. Take a look at the implementation [[plugin:tagging|tagging]] to see how those events can be used.
 +
 +  * ''PLUGIN_ELASTICSEARCH_CREATEMAPPING'': Triggered when creating the index. Plugins may add their own fields and mappings via event data.
 +  * ''PLUGIN_ELASTICSEARCH_INDEXPAGE'': While indexing a page, plugins can provide their own data.
 +  * ''PLUGIN_ELASTICSEARCH_FILTERS'': Adds search configurations provided by plugins.
 +  * ''PLUGIN_ELASTICSEARCH_SEARCHFIELDS'': Lets plugins add their own fields to the list of search fields included in the Elastic query.
 +  * ''PLUGIN_ELASTICSEARCH_QUERY'': Lets plugins append their data to the query string.
  
 ==== Commit-Ticker ==== ==== Commit-Ticker ====
Line 102: Line 118:
   * search a specific language   * search a specific language
   * exact match (non-fuzzy search)   * exact match (non-fuzzy search)
-  * integration of the [[plugin:tagging]] plugin; tagged pages are shown on the results page but this bypasses Elasticsearch 
  
  
plugin/elasticsearch.txt · Last modified: 2024-02-15 12:01 by Aleksandr

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki