Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Elasticsearch 💙 Neos

Elasticsearch 💙 Neos

The presentation starts with some basics about the elasticsearch integration in Neos CMS. Shows new features and changes in the elasticsearch contentrepository adapter version 7 and introduces some handy tools like the queue indexer and the elastic sync package.

96ca2af44f81a79c6d041fa4ee45d8b1?s=128

Daniel Lienert

April 08, 2020
Tweet

Transcript

  1. Neos Elasticsearch

  2. Daniel Lienert • Software Architect
 @ punkt.de / Karlsruhe •

    Neos Core Team Member • @dlienert
  3. Flowpack. ElasticSearch. ContentRepositoryAdaptor

  4. 1. Why you want to use it 2. What it

    provides 3. Whats new in version 7 4. Packages around the CR Adapter
  5. None
  6. Search

  7. None
  8. None
  9. Flowpack.SearchPlugin

  10. Amazon S3 H1 Amazon S3 H3 Amazon S3 H… Amazon

    S3 text Amazon S3 H2
  11. Fulltext Indexing

  12. Custom result rendering

  13. Query Data

  14. FlowQuery

  15. Find And Filter

  16. Sort And Limit

  17. Elasticsearch

  18. Find And Filter

  19. Sort And Limit

  20. None
  21. Aggregations

  22. Aggregations

  23. Elasticsearch Contentrepository Adapter v7

  24. Compatible to Elasticsearch 6.x and 7.x

  25. Version 5.6 not longer supported Version EOL Date 5.6.x 2019-03-11

    6.8.x 2020-11-20 7.6.x 2021-08-11
  26. Removal of mapping types Flow Classname Neos NodeType _type

  27. Elasticsearch Data Storage - History Elasticsearch v1 Index 1 Index

    2 Type A Type B Type A Type … field_a: integer field_a: string
  28. Elasticsearch Data Storage - History Elasticsearch > v2 Index 1

    Index 2 Type A Type B Type A Type … field_a: integer field_a: integer
  29. Removal of mapping types Elasticsearch > v6 Index 1 Index

    2 field_a: integer field_a: integer field_a: string field_a: string
  30. Flow Classname Neos NodeType neos_type Removal of mapping types

  31. One Index per Dimension Combination

  32. 1. Language Specific Analyzer and Filter 2. Language Specific StopWords

    3. Indexes are easier to maintain
  33. As before. Same configuration apply to all indices

  34. Configure every dimension index separately

  35. Caution: The configurations are not merged

  36. Index Names until v6 Pattern: <definedPrefix>-<timestampOfCreation> Example neoscr-1586069025 Alias neoscr

    -> neoscr-1586069025
  37. Index Names v7 Pattern: <definedPrefix>-<dimensionCombinationHash>-<timestampOfCreation> Example •neoscr-4f534b1eb0c1a785da31e681fb5e91ff-1586069025 •neoscr-0359ed5c416567b8bc2e5ade0f277b36-1586069025 Alias neoscr-0359ed5c416567b8bc2e5ade0f277b36

    -> neoscr-0359ed5c416567b8bc2e5ade0f277b36-1586069025
  38. Show Dimension to Index Mapping ./flow nodeindexmaping:indices

  39. Exclude NodeTypes from Indexing

  40. Configuration per NodeType

  41. Show Indexable Configuration ./flow nodetype:showIndexableConfiguration

  42. Index build steps / parts are executed in isolated subcommands

  43. Isolated index build steps

  44. New commands help debugging

  45. Test fulltext search ./flow search:fulltext <searchword>

  46. Show what has been indexed ./flow search:viewnode <nodeidentifier> [<dimensions>] [<field>]

  47. Show what has been indexed ./flow search:viewnode <nodeidentifier> [<dimensions>] [<field>]

  48. Elasticsearch Packages

  49. Queue Indexer

  50. Slicer Worker Worker Worker Worker Work

  51. None
  52. Flowpack.ElasticSearch.ContentRepositoryQueueIndexer

  53. Elastic Sync

  54. Elasticsearch Neos Neos Local Elasticsearch Staging

  55. None
  56. PunktDe.Elastic.Sync

  57. Asset Usage

  58. None
  59. PunktDe.Elastic.AssetUsageInNodes

  60. @dlienert daniellienert