Yoann Rodière (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
) *created* an issue
Hibernate Search (
https://hibernate.atlassian.net/browse/HSEARCH?atlOrigin=eyJpIjoiYjA0ZWFi...
) / Task (
https://hibernate.atlassian.net/browse/HSEARCH-3945?atlOrigin=eyJpIjoiYjA...
) HSEARCH-3945 (
https://hibernate.atlassian.net/browse/HSEARCH-3945?atlOrigin=eyJpIjoiYjA...
) Refactor ElasticsearchScopedIndexFieldComponent / LuceneScopedIndexFieldComponent (
https://hibernate.atlassian.net/browse/HSEARCH-3945?atlOrigin=eyJpIjoiYjA...
)
Issue Type: Task Assignee: Yoann Rodière (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
) Components: backend-elasticsearch, backend-lucene Created: 09/Jun/2020 05:01 AM Fix
Versions: 6.0.0.Beta-backlog-low-priority Priority: Major Reporter: Yoann Rodière (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
)
These classes are getting complicated and are beginning to serve as a generic
representation of a field across multiple indexes. It's getting worse in HSEARCH-3391
(
https://hibernate.atlassian.net/browse/HSEARCH-3391 ) In Progress in particular.
Let's clean it up:
* Define one "*IndexFieldContext" interface per "contruct":
sort/projection/aggregation/..., with the methods they need:
"SortIndexFieldContext", "ProjectionIndexFieldContext", etc.
* Implement these interfaces directly in
ElasticsearchIndexSchemaFieldNode/LuceneIndexSchemaFieldNode, so that there is no overhead
when searching on a single index.
* Implement these interfaces in an "aggregated" node for searches on multiple
indexes. Implement each method in such a way that we will throw an exception when a
conflict actually arises. I.e. keep a list of the underlying fields, and when e.g.
getConverter() is called, check that the converter defined for the field in each index is
compatible with the others. In short this should get rid of
ElasticsearchCompatibilityChecker / LuceneCompatibilityChecker as we would perform
compatibility checks lazily.
* Most importantly, pass the "*IndexFieldContext" directly to the
sort/projection/etc. factory methods, instead of passing the different components (field
path, converter, ...) separately.
(
https://hibernate.atlassian.net/browse/HSEARCH-3945#add-comment?atlOrigin...
) Add Comment (
https://hibernate.atlassian.net/browse/HSEARCH-3945#add-comment?atlOrigin...
)
Get Jira notifications on your phone! Download the Jira Cloud app for Android (
https://play.google.com/store/apps/details?id=com.atlassian.android.jira....
) or iOS (
https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=Em...
) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100128- sha1:85a81c0 )