[
https://issues.apache.org/jira/browse/SOLR-4799?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mikhail Khludnev updated SOLR-4799:
-----------------------------------
Description:
DIH is mostly considered as a playground tool, and real usages end up with
SolrJ. I want to contribute few improvements target DIH performance.
This one provides performant approach for joining SQL Entities with miserable
memory at contrast to
http://wiki.apache.org/solr/DataImportHandler#CachedSqlEntityProcessor
The idea is:
* parent table is explicitly ordered by it’s PK in SQL
* children table is explicitly ordered by parent_id FK in SQL
* children entity processor joins ordered resultsets by ‘zipper’ algorithm.
*example usage* for what's committed:
{code}
<dataConfig>
<document>
<entity name="parent" processor="SqlEntityProcessor"
query="SELECT * FROM PARENT ORDER BY id">
<entity name="child_1" processor="SqlEntityProcessor"
where="parent_id=parent.id" query="SELECT *
FROM CHILD_1 ORDER BY parent_id" join="zipper" >
</entity>
</entity>
</document>
</dataConfig>
{code}
mind about:
# *ordering* both sides
# specifying *join="zipper"* at children entity
# note that it works with *any entity processors*
was:
DIH is mostly considered as a playground tool, and real usages end up with
SolrJ. I want to contribute few improvements target DIH performance.
This one provides performant approach for joining SQL Entities with miserable
memory at contrast to
http://wiki.apache.org/solr/DataImportHandler#CachedSqlEntityProcessor
The idea is:
* parent table is explicitly ordered by it’s PK in SQL
* children table is explicitly ordered by parent_id FK in SQL
* children entity processor joins ordered resultsets by ‘zipper’ algorithm.
Do you think it’s worth to contribute it into DIH?
cc: [~goksron] [~jdyer]
> DIH: join="zipper" aka merge join for nested EntityProcessors
> --------------------------------------------------------------
>
> Key: SOLR-4799
> URL: https://issues.apache.org/jira/browse/SOLR-4799
> Project: Solr
> Issue Type: New Feature
> Components: contrib - DataImportHandler
> Reporter: Mikhail Khludnev
> Assignee: Noble Paul
> Priority: Minor
> Labels: DIH, dataimportHandler, dih
> Fix For: 5.0, Trunk
>
> Attachments: SOLR-4799.patch, SOLR-4799.patch, SOLR-4799.patch,
> SOLR-4799.patch, SOLR-4799.patch
>
>
> DIH is mostly considered as a playground tool, and real usages end up with
> SolrJ. I want to contribute few improvements target DIH performance.
> This one provides performant approach for joining SQL Entities with miserable
> memory at contrast to
> http://wiki.apache.org/solr/DataImportHandler#CachedSqlEntityProcessor
> The idea is:
> * parent table is explicitly ordered by it’s PK in SQL
> * children table is explicitly ordered by parent_id FK in SQL
> * children entity processor joins ordered resultsets by ‘zipper’ algorithm.
> *example usage* for what's committed:
> {code}
> <dataConfig>
> <document>
> <entity name="parent" processor="SqlEntityProcessor"
> query="SELECT * FROM PARENT ORDER BY id">
> <entity name="child_1" processor="SqlEntityProcessor"
> where="parent_id=parent.id" query="SELECT *
> FROM CHILD_1 ORDER BY parent_id" join="zipper" >
> </entity>
> </entity>
> </document>
> </dataConfig>
> {code}
> mind about:
> # *ordering* both sides
> # specifying *join="zipper"* at children entity
> # note that it works with *any entity processors*
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]