Flowpack.ElasticSearch.ContentRepositoryAdaptor icon indicating copy to clipboard operation
Flowpack.ElasticSearch.ContentRepositoryAdaptor copied to clipboard

BUGFIX: use correct context for document-identifier

Open PRGfx opened this issue 1 year ago • 0 comments

Problem

The current implementation falls back to the workspace name of the node (i.e. the value of the underlying NodeData), which in most cases is "live", generating the same document-identifier when indexing separate workspaces, thus always updating the same elasticsearch document with a new workspace. Because of that only the last indexed workspace would have nodes in the index and querying "live" would most likely not find results.

Implementation

The NodePathBasedDocumentIdentifierGenerator uses the context-path of the node and might replace the workspace with the given $targetWorkspaceName. In general that would leave the user-workspace as is: the context-path in the node is built from the workspace-name from the node context rather than the workspace name of the NodeData object.

The NodeIdentifierBasedDocumentIdentifierGenerator now also uses the node context values.

As the "original" solution would also include the dimensions, I added them as well: I utilized the NodePaths utility to format workspace-name and dimensions. I see how it might be debatable to misuse the utility and I guess it's not really necessary to match the format, so that could be changed, if preferred.

Relates to #394

PRGfx avatar May 15 '23 11:05 PRGfx