Hi Alex, Thank you for your response. It worked. I am very happy for the results. I reports the steps below. The purpose is to create a dynamic field to simplify field definition in managed-schema file and to simplify field rank in solrconfig.xml file.
STEPS: 1. file creation of db-data-config.xml <dataConfig> <dataSource name ="data_source_?????" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://machineName:3306/databaseName?zeroDateTimeBehavior=convertToNull" user="?????" password="?????" /> <document name="db-fulltext-index"> <entity name="pdb_entry" pk="pdb_id_stem" transformer="my.solr.transformer.FieldTransformer" query=" * from pdb_entry where status_code = 'REL' " > <entity name="citation" onError="continue" transformer="my.solr.transformer.FieldTransformer" query="select title from citation where Structure_ID='${pdb_entry.pdb_id_stem}' and id = 'primary' " > </entity> <entity name="citation_author" onError="continue" transformer="my.solr.transformer.FieldTransformer" query="select name from citation_author where Structure_ID='${pdb_entry.pdb_id_stem}' and citation_id = 'primary' " > </entity> </entity> </document> </dataConfig> 2. Modification of solrconfig.xml file: notice of the ranking <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-\d.*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/" regex="mysql-connector-java-5.0.7-bin.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-rcsb-plugin.jar" /> <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">db-data-config.xml</str> </lst> </requestHandler> <requestHandler name="/search" class="solr.SearchHandler"> <lst name="defaults"> <str name="indent">true</str> <str name="echoParams">explicit</str> <str name="defType">edismax</str> <str name="qf">pdb_id_stem^20.0</str> <str name="qf">title_stem^20.0</str> <str name="qf">keywords_stem^10.0</str> <str name="qf">*_stem^0.3</str> <str name="qf">rest_fields_stem ^0.3</str> <str name="mm">7</str> <int name="rows">1000</int> <str name="df">text</str> </lst> </requestHandler> 3. Modification of managed-schema file: Notice of change <uniqueKey>, creation of a dynamic field "*_stem",,, <field name="pdb_id_stem" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="rest_fields_stem" type="pdb_text_stem" indexed="true" stored="true" multiValued="true"/> <copyField source="*_stem" dest="rest_fields_stem"/> <dynamicField name="*_stem" type="pdb_text_stem" indexed="true" stored="true"/> <fieldtype name="pdb_text_stem" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" /> <filter class="solr.StopFilterFactory" ignoreCase="true"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> <filter class="solr.PorterStemFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" /> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> <filter class="solr.PorterStemFilterFactory"/> </analyzer> </fieldtype> <uniqueKey>pdb_id_stem</uniqueKey> 4. creation of a customer transformer: package my.solr.transformer; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.solr.handler.dataimport.Context; import org.apache.solr.handler.dataimport.DataImporter; import org.apache.solr.handler.dataimport.Transformer; public class FieldTransformer extends Transformer { public Map<String, Object> transformRow(Map<String, Object> row, Context context) { List<Map<String, String>> fields = ((Context) context).getAllEntityFields(); int rowSize = row.size(); //System.out.println("row size to start = " + rowSize); //Converting HashMap keys into ArrayList Set<String> keySet = row.keySet(); List<String> keyList = new ArrayList<String>(keySet); for (int i = 0; i < rowSize; i++) { String columnName = keyList.get(i); Object value = row.get(columnName); if (value != null && !value.toString().trim().equals("")) { row.put(columnName + "_stem", value.toString().trim()); //System.out.println("value = " + value.toString().trim()); //System.out.println("row.size = " + row.size()); }; row.remove(columnName); } System.out.println("row size ended = " + row.size()); return row; } } 5. NOTE: when using customer transformer, need to add the following two jar fiels to this destination: cp solr-dataimporthandler-6.1.0.jar /opt/solr-6.1.0/server/solr-webapp/webapp/WEB-INF/lib cp solr-dataimporthandler-extras-6.1.0.jar /opt/solr-6.1.0/server/solr-webapp/webapp/WEB-INF/lib 6. screen shot: <http://lucene.472066.n3.nabble.com/file/n4293261/Screenshot-20.png> -- View this message in context: http://lucene.472066.n3.nabble.com/help-with-DIH-transformer-to-add-a-suffix-to-column-names-tp4292448p4293261.html Sent from the Solr - User mailing list archive at Nabble.com.