You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Use flattened field type instead of object for neos_fulltext_parts #356
The field neos_fulltext_parts stores the fulltext path for every aggregateRoot document with the childnode identifiers as keys. This easily can lead to mapping explosion. Starting with Elasticsearch > 7.3, you can configure:
{
"update": {
"_index": "neos-fb11fdde869d0a8fcfe00a2fd35c031d",
"_type": "_doc",
"_id": "0c079d7c6c2a427f76eaf55340dd28d79ce3ae47",
"status": 400,
"error": {
"type": "illegal_argument_exception",
"reason": "Limit of total fields [1000] has been exceeded"
}
}
}
Debugging shows me: During indexing, an index named like neos-e781f29c8dd927c09735547a848e3459-1612469847 is created, that shows this when fetching the mapping:
"neos_fulltext_parts": {
"type": "flattened"
}
As soon as documents are actually added, this happens to an index named like neos-e781f29c8dd927c09735547a848e3459 (note the missing suffix), in which the mapping is like this:
As soon as documents are actually added, this happens to an index named like neos-e781f29c8dd927c09735547a848e3459 (note the missing suffix), in which the mapping is like this:
@kdambekalns: There should never be an index named like that. It should be an alias pointing to one of the timestamp suffixed indices. Apparently this index was created on the fly - without the index configuration / mapping applied - before the aliases are added.
Great, that bug about the alias not being an alias is a long-time aquaintance, now that you mention it. With that fixd (manually), indexing indeed preserves the flattened type.
I'll create a PR mimicking 97aa56f for v7 tomorrow.
And look into that "no alias created as expected" issue.
Activity
kdambekalns commentedon Feb 4, 2021
The bad thing is, we can't simply override this in userland code… The default is
and when changing the type to
flattened, you get this:Mapping definition for [neos_fulltext_parts] has unsupported parameters: [enabled : false]kdambekalns commentedon Feb 4, 2021
I changed this directly,
configuration:shownow gives me:like above. I still get this:
Debugging shows me: During indexing, an index named like
neos-e781f29c8dd927c09735547a848e3459-1612469847is created, that shows this when fetching the mapping:As soon as documents are actually added, this happens to an index named like
neos-e781f29c8dd927c09735547a848e3459(note the missing suffix), in which the mapping is like this:daniellienert commentedon Feb 4, 2021
@kdambekalns: 97aa56f is whats needed to unset ´enabled`. Seems I actually only added that to v8 🙈
daniellienert commentedon Feb 4, 2021
@kdambekalns: There should never be an index named like that. It should be an alias pointing to one of the timestamp suffixed indices. Apparently this index was created on the fly - without the index configuration / mapping applied - before the aliases are added.
kdambekalns commentedon Feb 4, 2021
Great, that bug about the alias not being an alias is a long-time aquaintance, now that you mention it. With that fixd (manually), indexing indeed preserves the
flattenedtype.I'll create a PR mimicking 97aa56f for v7 tomorrow.
And look into that "no alias created as expected" issue.
kdambekalns commentedon Feb 5, 2021
#372
paavo commentedon Feb 21, 2024
Anyone got this working with Opensearch (which does not support flattened)? 🤔