Version history
===============

7.0.1 (2022-03-30):

- fixed: likes count in index

7.0 (2022-02-16):

- changed: increased minimal Elgg version to 4.1
- fixed: replaced deprecated function for searchable entities

6.0 (2021-09-27):

- changed: updated for Elgg 4.0

5.0.3 (2021-01-05):

- fixed: owner and container filter

5.0.2 (2020-12-08):

- fixed: do not check private settings to add a menu item
- fixed: livesearch query matching

5.0.1 (2020-10-14):

- changed: batch syncs use ElggBatch

5.0 (2020-10-13):

- added: basic search service
- added: cli command to sync the index
- added: entity menu item to inspect entity in Elasticsearch
- added: indexing as a service
- added: indicate difference in inspector
- changed: get cluster information using service
- changed: increased minimal Elgg version requirement to 3.2
- changed: increased minimal ELgg version to 3.3
- changed: index management uses service
- changed: index stats use service
- changed: inspect page uses service
- changed: supported version of ElasticSearch now is 7.4.x
- fixed: correctly index text fields to allow sorting
- fixed: empty query support
- fixed: group member count sorting
- fixed: index configuration
- fixed: inspect menu item visible for non admins
- fixed: prevent endless loop during cron update
- fixed: searching by content type
- removed: custom log interface
- removed: old client class moved to DI services
- removed: search suggestions

4.2.2 (2020-08-18):

- fixed: prevent double search highlight output
- fixed: tags result output

4.2.1 (2020-03-03):

- fixed: respect tokenized search string behaviour
- fixed: use original query for suggestions and highlighting

4.2 (2019-08-22):

- changed: hook and event callbacks use class based params
- changed: set_ignore_access replaced by elgg_call

4.1 (2019-07-24):

- added: ability to handle livesearch queries

4.0.1 (2019-05-29):

- fixed: don't handle searches with relationship set

4.0 (2019-04-17):

- added: decay time field selector
- added: hooks for export and restoreof entity
- added: likes and comments counters to export
- added: plugin hook to prevent an entity from being indexed
- added: plugin settings to disable SSL verification
- added: plugin setting to display search score to admins
- added: query field boosting support
- added: support for aggregations
- added: support for more elgg_get_entities options during search
- changed: admin search using improved JS file
- changed: increased minimal Elgg version requirement to 3.0
- changed: indexing of entities now under 1 type
- changed: moved start.php contents to elgg-plugin and Bootstrap
- changed: search hook registration
- changed: transform some Elgg metadata search fields to attributes
- changed: use count API when needed
- changed: WIP making search work again
- fix: tags export always as lowercase strings
- fixed: admin search js
- fixed: correctly handle filters on count queries
- fixed: correctly search through profile fields
- fixed: dynamic mapping for metadata
- fixed: incorrect database query
- fixed: make sure tags are unique
- fixed: metadata export
- fixed: object search field cleaned up too much
- fixed: php notice
- removed: need for custom css
- removed: unneeded code
- removed: unneeded hook code

3.6 (2019-01-24):

- added: option to remove entity from index
- fixed: banned users not removed from index in cleanup

3.5.3 (2018-11-15):

- changed: validating of the Elasticsearch now checks searchable state
- fixed: fetch correct input

3.5.2 (2018-10-31):

- fixed: correctly loop through deletion documents
- fixed: permission issues during deletion

3.5.1 (2018-07-13):

- fixed: only apply default sorting if no sorting requested
- fixed: use correct default value for sorting as used in core

3.5 (2018-06-28):

- added: decay settings for demoting content that is older
- added: if ordered by score, similar scores are now ordered newest first

3.4 (2018-03-22):

- added: hook to influence boostable content types

3.3.2 (2018-03-08):

- several small chores/fixes

3.3.1 (2018-02-12):

- several small chores/fixes

3.3 (2018-01-11):

- added: plugin hooks to change config values for index and mapping
- added: support for filtering on owner_guid
- fixed: OOM in daily cleanup job

3.2 (2017-09-21):

- added: allow highlight control via hooks
- added: plugin settings to control boosting of content types

3.1.1 (2017-09-06):

- changed: explicitly set some highlighting settings

3.1 (2017-07-31):

- added: plugin setting to enable index validation

3.0.1 (2017-05-11):

- changed: improved matching based on profile field search
- fixed: catch exceptions for incomplete entities
- fixed: set scroll_id based on returned value

3.0 (2017-03-24):

- changed: search now includes the full search sentence as a search
- changed: upped the minimal requirements to Elgg 2.3

2.0 (2016-12-16):

- added: admin section to inpect an entity
- added: daily cron job to check Elgg entities not present in Elastic
- added: daily cron to cleanup document in ES which don't exist in Elgg
- changed: increased Elgg version requirement to 2.2
- fixed: delete document from ES now checks for success

1.1 (2016-07-07):

- changed: escaped some extra search strings for profile field searches
- changed: switched global query to simple query string
- fixed: use correct default limit for listing

1.0.1 (2016-04-14):

- fixed: exporting discussion replies in Elgg 2.x

1.0 (2016-03-08):

- added: ability to add counters to entity export
- added: ability to enable scores tracking
- added: access support in search
- added: admin search action now performs a basic search
- added: admin search can now search in any index
- added: admin search form
- added: alphabetical sorting capabilities
- added: basic document operations
- added: basic tags search
- added: bulkIndexDocuments function is now available
- added: changed no match query part
- added: chronological sorting options added
- added: count queries now use the count API call
- added: create/delete relationship events now update the entity in the index
- added: deletion of documents in elastic will now be done in bulk
- added: did you mean suggestions are displayed on top of result lists
- added: dutch translation
- added: explicit metadata mappings
- added: export group member count
- added: function to get current sorting params
- added: function to get the search_params type
- added: general search function chore: some internal rewrites
- added: generic metadata export abilities and export of user/group profile data
- added: getHits function added to SearchResult class
- added: group content search is now functional
- added: handling of group member count sorting
- added: index management actions
- added: insert/update/delete entities
- added: manifest requirement to be positioned after search plugin
- added: option to configure multiple hosts
- added: option to delete the alias from an index
- added: option to view the api logs
- added: plugin hook for elasticsearch params
- added: pluginhook for search params
- added: plugin setting to take over search hooks
- added: profile data is now always mapped as string
- added: profile field filter is now part of the query
- added: raw mapping for metadata.name and metadata.value
- added: readable admin search results
- added: reindex action to elgg stats
- added: relationships are exported
- added: relationships mapping to nested
- added: replaces the default elgg search hooks with elastic searches
- added: search alias support
- added: search_score is added to the volatile data
- added: setIndex added to SearchParams
- added: support for search advanced combined:all search
- added: update entities in the index that get commented or annotated on
- added: update index when an entity gets disabled
- added: user/group tag profile fields get appended to the tags field
- added: user profile fields are now being searched
- changed: added basic configuration instructions to the readme
- changed: bulk index menthod to bulk
- changed: changed suggestion to only suggest if terms are missing
- changed: check if exists before update/deleteDocument
- changed: cluster stats layout
- changed: create/update document now use index api call
- changed: create/update entity indexing
- changed: default analyzer updated to use lowercase and asciifolding
- changed: download es log instead of viewing on site
- changed: elasticsearch log level minimun to ERROR
- changed: elgg stats don't require client
- changed: entity search now all use the same search hook
- changed: error reporting only shows error text
- changed: improved/fixed profile field search
- changed: indices stats collapsable
- changed: individual mappings changed to a _default_ mapping for all entities
- changed: introduced new Elastic SearchParams class for querying
- changed: lower case the query when doing tag search
- changed: moved index config to a view to allow easy override
- changed: moved mapping to a view file to allow easy overrides
- changed: prepareSearchParamsForHook is now a public functoin
- changed: query is now multimatch and also multimatches profile data
- changed: query type to query_string
- changed: reordered menu items
- changed: replaced name of class functions create/update with index
- changed: search errors are reported more general to users
- changed: search highlighting done by ElasticSearch
- changed: search now only searches specific fields
- changed: search results are passed through a hook to transform
- changed: some new search params functions and a fix for entity access
- changed: switch to count query instead of count api call
- changed: tags are stripped from all title and description fields
- changed: type/subtypes validation using own function
- changed: updated search category name
- fixed: addFilter now recursive merges the new filter with existing ones
- fixed: adding access filter causes other filters to no longer work
- fixed: admin search was missing some translatable texts
- fixed: always push access_id and correctly check for valid entities
- fixed: basic logging
- fixed: batchsize
- fixed: call to undefined function
- fixed: coding style in constructor
- fixed: conflict in access and group filter
- fixed: correct formatting of combined:object types
- fixed: correctly check if access can be ignored during search
- fixed: correctly limit profile search to user types
- fixed: could not match on tags cross field search
- fixed: default type_subtype_pairs to array to prevent php warnings
- fixed: dirty fix to support searching with ampersand on profile fields
- fixed: do not fetch suggestions when doing a count
- fixed: encoding issue on user/group name
- fixed: error_log overflow is curl_multi_exec is blocked
- fixed: highlighting on user/group name
- fixed: host url needed more cleanup
- fixed: html in elasticsearch to export
- fixed: incorrect check for registered entity type/subtype
- fixed: incorrect params for update doc
- fixed: load additional required params for users to prevent dbcalls
- fixed: load site icons
- fixed: log dir unavailable
- fixed: logging layout
- fixed: missing feedback in admin search when client can not be created
- fixed: missing semicolon
- fixed: only mark entity as updatable when in index
- fixed: only show log root folder link if in subfolder
- fixed: page_top and discussion replies should be indexed
- fixed: php notice
- fixed: php notice undefined property
- fixed: prevent html rendering of errors
- fixed: remove banned users from index
- fixed: reset offset when changing sort order
- fixed: return value
- fixed: show correct file/folder icons in log pages
- fixed: sorting not added to correct query part
- fixed: tags are now indexed as a full sentence
- fixed: unset sort order in sort menu items
- fixed: use a must bool search for the default search instead of a should
- fixed: use correct index when set to a custom index
- fixed: wrong var check
