What about DIH's own XSL pre-processor? It is XSL param on https://cwiki.apache.org/confluence/display/solr/Uploading+Structured+Data+Store+Data+with+the+Data+Import+Handler#UploadingStructuredDataStoreDatawiththeDataImportHandler-TheXPathEntityProcessor
No other ideas, unfortunately, I don't usually nest XML processors. Regards, Alex. ---- Solr Analyzers, Tokenizers, Filters, URPs and even a newsletter: http://www.solr-start.com/ On 8 September 2015 at 12:12, Umang Agrawal <umang.i...@gmail.com> wrote: > Thanks Alex. > > Inner entity name should be different - It was a typo error in my question. > > Regarding using XsltUpdateRequestHandler > <https://wiki.apache.org/solr/XsltUpdateRequestHandler> , It's a good > solution but I can not use it in my application since I need to include few > more transformer and java manipulators. > > Could you please suggest how to use XPATH syntax like " > /RESOURCE/LINK[@ID=${testdata.id}]/TAG/TAG_VALUE" in data config xml file? > > On Tue, Sep 8, 2015 at 6:34 PM, Umang Agrawal <umang.i...@gmail.com> > wrote: > >> Hi All >> >> I am facing a problem with XPathEntityProcessor . >> >> Objective: >> When I index Resource XML file using DIH XPathEntityProcessor then there >> should be 2 solr documents >> 01) Link where id is 1000 with 2 tags ABC and DEF >> 02) Link where id is 2000 with 3 tags GHI, JKL and MNO >> >> Solr Version: 4.10.2 >> >> Problem: >> I am not able to index <TAG/> data properly. >> >> Expected Output: >> { >> "id": "1000", >> "field_name": "val1", >> "ABC": "ABC_VALUE", >> "DEF": "DEF_VALUE" >> }, >> { >> "id": "2000", >> "field_name": "val2", >> "GHI": "GHI_VALUE", >> "JKL": "JKL_VALUE", >> "MNO": "MNO_VALUE" >> } >> >> ======================================================================================================== >> >> Resource XML: >> >> <RESOURCE> >> <LINK ID="1000"> >> <FIELD>val1</FIELD> >> <TAG> >> <TAG_CODE>ABC</TAG_CODE> >> <TAG_VALUE>ABC_VALUE</TAG_VALUE> >> </TAG> >> <TAG> >> <TAG_CODE>DEF</TAG_CODE> >> <TAG_VALUE>DEF_VALUE</TAG_VALUE> >> </TAG> >> </LINK> >> <LINK ID="2000"> >> <FIELD>val2</FIELD> >> <TAG> >> <TAG_CODE>GHI</TAG_CODE> >> <TAG_VALUE>GHI_VALUE</TAG_VALUE> >> </TAG> >> <TAG> >> <TAG_CODE>JKL</TAG_CODE> >> <TAG_VALUE>JKL_VALUE</TAG_VALUE> >> </TAG> >> <TAG> >> <TAG_CODE>MNO</TAG_CODE> >> <TAG_VALUE>MNO_VALUE</TAG_VALUE> >> </TAG> >> </LINK> >> </RESOURCE> >> >> >> ======================================================================================================== >> >> DataConfig XML (TRY 1): >> <dataConfig> >> <script><![CDATA[ >> function f1(row) { >> var code = row.get("TAG_CODE"); >> var val = row.get("TAG_VALUE"); >> row.put(code, val); >> row.remove("TAG_CODE"); >> row.remove("TAG_VALUE"); >> return row; >> } >> ]]></script> >> <dataSource type="URLDataSource" /> >> <document> >> <entity name="testdata" url="http://host:port/uri" >> processor="XPathEntityProcessor" forEach="/RESOURCE/LINK"> >> <field column="id" xpath="/RESOURCE/LINK/@ID" /> >> <field column="field_name" xpath="/RESOURCE/LINK/FIELD" /> >> <entity name="testdata" url="http://host:port/uri" >> processor="XPathEntityProcessor" >> forEach="/RESOURCE/LINK/TAG" transformer="script:f1"> >> <field column="TAG_CODE" xpath="/RESOURCE/LINK/TAG/TAG_CODE" /> >> <field column="TAG_VALUE" xpath="/RESOURCE/LINK/TAG/TAG_VALUE" /> >> </entity> >> </entity> >> </document> >> </dataConfig> >> >> Output: >> { >> "id": "1000", >> "field_name": "val1", >> "ABC": "ABC_VALUE", >> "DEF": "DEF_VALUE", >> "GHI": "GHI_VALUE", >> "JKL": "JKL_VALUE", >> "MNO": "MNO_VALUE" >> }, >> { >> "id": "2000", >> "field_name": "val2", >> "ABC": "ABC_VALUE", >> "DEF": "DEF_VALUE", >> "GHI": "GHI_VALUE", >> "JKL": "JKL_VALUE", >> "MNO": "MNO_VALUE" >> } >> >> >> ======================================================================================================== >> >> DataConfig XML (TRY 2): >> <dataConfig> >> <script><![CDATA[ >> function f1(row) { >> var code = row.get("TAG_CODE"); >> var val = row.get("TAG_VALUE"); >> row.put(code, val); >> row.remove("TAG_CODE"); >> row.remove("TAG_VALUE"); >> return row; >> } >> ]]></script> >> <dataSource type="URLDataSource" /> >> <document> >> <entity name="testdata" url="http://host:port/uri" >> processor="XPathEntityProcessor" forEach="/RESOURCE/LINK"> >> <field column="id" xpath="/RESOURCE/LINK/@ID" /> >> <field column="field_name" xpath="/RESOURCE/LINK/FIELD" /> >> <entity name="testdata" url="http://host:port/uri" >> processor="XPathEntityProcessor" >> forEach="/RESOURCE/LINK[@ID=${testdata.id}]/TAG" transformer="script:f1"> >> <field column="TAG_CODE" xpath="/RESOURCE/LINK/TAG/TAG_CODE" /> >> <field column="TAG_VALUE" xpath="/RESOURCE/LINK/TAG/TAG_VALUE" /> >> </entity> >> </entity> >> </document> >> </dataConfig> >> >> Output: >> { >> "id": "1000", >> "field_name": "val1" >> }, >> { >> "id": "2000", >> "field_name": "val2" >> } >> >> >> ======================================================================================================== >> >> DataConfig XML (TRY 3): >> <dataConfig> >> <script><![CDATA[ >> function f1(row) { >> var code = row.get("TAG_CODE"); >> var val = row.get("TAG_VALUE"); >> row.put(code, val); >> row.remove("TAG_CODE"); >> row.remove("TAG_VALUE"); >> return row; >> } >> ]]></script> >> <dataSource type="URLDataSource" /> >> <document> >> <entity name="testdata" url="http://host:port/uri" >> processor="XPathEntityProcessor" forEach="/RESOURCE/LINK"> >> <field column="id" xpath="/RESOURCE/LINK/@ID" /> >> <field column="field_name" xpath="/RESOURCE/LINK/FIELD" /> >> <entity name="testdata" url="http://host:port/uri" >> processor="XPathEntityProcessor" >> forEach="/RESOURCE/LINK[@ID=${testdata.id}]/TAG" transformer="script:f1"> >> <field column="TAG_CODE" >> xpath="/RESOURCE/LINK[@ID=${testdata.id}]/TAG/TAG_CODE" >> /> >> <field column="TAG_VALUE" >> xpath="/RESOURCE/LINK[@ID=${testdata.id}]/TAG/TAG_VALUE" >> /> >> </entity> >> </entity> >> </document> >> </dataConfig> >> >> Output: >> { >> "id": "1000", >> "field_name": "val1" >> }, >> { >> "id": "2000", >> "field_name": "val2" >> } >> >> >> -- >> Thanx & Regards >> Umang Agrawal >> >> >> [image: Inline image 1] >> > > > > -- > Thanx & Regards > Umang Agrawal >