[hibernate-issues] [JIRA] (HSEARCH-3945) Refactor ElasticsearchScopedIndexFieldComponent / LuceneScopedIndexFieldComponent

Yoann Rodière (JIRA) jira at hibernate.atlassian.net
Tue Jun 9 08:01:25 EDT 2020


Yoann Rodière ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A58fa1ced-171a-4c00-97e8-5d70d442cc4b ) *created* an issue

Hibernate Search ( https://hibernate.atlassian.net/browse/HSEARCH?atlOrigin=eyJpIjoiYjA0ZWFiZTBlMjI0NDNiZDk2NDc2ODM0ODlmMGEyZmEiLCJwIjoiaiJ9 ) / Task ( https://hibernate.atlassian.net/browse/HSEARCH-3945?atlOrigin=eyJpIjoiYjA0ZWFiZTBlMjI0NDNiZDk2NDc2ODM0ODlmMGEyZmEiLCJwIjoiaiJ9 ) HSEARCH-3945 ( https://hibernate.atlassian.net/browse/HSEARCH-3945?atlOrigin=eyJpIjoiYjA0ZWFiZTBlMjI0NDNiZDk2NDc2ODM0ODlmMGEyZmEiLCJwIjoiaiJ9 ) Refactor ElasticsearchScopedIndexFieldComponent / LuceneScopedIndexFieldComponent ( https://hibernate.atlassian.net/browse/HSEARCH-3945?atlOrigin=eyJpIjoiYjA0ZWFiZTBlMjI0NDNiZDk2NDc2ODM0ODlmMGEyZmEiLCJwIjoiaiJ9 )

Issue Type: Task Assignee: Yoann Rodière ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A58fa1ced-171a-4c00-97e8-5d70d442cc4b ) 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%3A58fa1ced-171a-4c00-97e8-5d70d442cc4b )

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=eyJpIjoiYjA0ZWFiZTBlMjI0NDNiZDk2NDc2ODM0ODlmMGEyZmEiLCJwIjoiaiJ9 ) Add Comment ( https://hibernate.atlassian.net/browse/HSEARCH-3945#add-comment?atlOrigin=eyJpIjoiYjA0ZWFiZTBlMjI0NDNiZDk2NDc2ODM0ODlmMGEyZmEiLCJwIjoiaiJ9 )

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.core&referrer=utm_source%3DNotificationLink%26utm_medium%3DEmail ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailNotificationLink&mt=8 ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100128- sha1:85a81c0 )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/hibernate-issues/attachments/20200609/706982b4/attachment.html 


More information about the hibernate-issues mailing list