DIH - an uppercase problem in query parameters
----------------------------------------------

                 Key: SOLR-2483
                 URL: https://issues.apache.org/jira/browse/SOLR-2483
             Project: Solr
          Issue Type: Bug
          Components: clients - java, contrib - DataImportHandler
    Affects Versions: 3.1
         Environment: Windows Vista
Java 1.6
            Reporter: Lubo Torok


I have two tables called "PROBLEM" and "KOMENTAR"(means 'comment' in English) 
in DB. One problem can have more comments. I want to index them all.
schema.xml looks as follows
... some fields ...
 <field name="problem_id" type="string" stored="true" required="true"/>
... some fields...

data-config.xml:
<document name="problemy">
    <entity name="problem" query="select to_char(id) as problem_id, nazov as 
problem_nazov, cislo as problem_cislo, popis as problem_popis from problem" 
pk="problem_id">
      <entity name="komentar" query="select id as komentar_id, nazov as 
komentar_nazov, text as komentar_text from komentar where 
to_char(fk_problem)='${problem.PROBLEM_ID}'"/>               
    </entity>  
  </document>

If you write '${problem.PROBLEM_ID}' in lower case, i.e. 
'${problem.problem_id}' SOLR will not import the inner entity. Seems strange to 
me and it took me some time to figure this out.

Note that primary key in "PROBLEM" is called "ID". I defined the alias 
"problem_id" (yes,lower case) in SQL. In schema, there is this field defined as 
"problem_id" again in lower case. But, when I run
http://localhost:8983/solr/dataimport?command=full-import&debug=true&verbose=on
so I can see some debug information there is this part
...
<lst name="verbose-output">
−
<lst name="entity:problem">
−
<lst name="document#1">
−
<str name="query">
select to_char(id) as problem_id, nazov as problem_nazov, cislo as 
problem_cislo, popis as problem_popis from problem
</str>
<str name="time-taken">0:0:0.465</str>
<str>----------- row #1-------------</str>
<str name="PROBLEM_NAZOV">test zodpovedneho</str>
<str name="PROBLEM_ID">2533274790395945</str>
<str name="PROBLEM_CISLO">2010093000004</str>
<str name="PROBLEM_POPIS">csfdewafedewfw</str>
<str>---------------------------------------------</str>
−
<lst name="entity:komentar">
−
<str name="query">
select id as komentar_id, nazov as komentar_nazov, text as komentar_text from 
komentar where to_char(fk_problem)='2533274790395945'
</str>
...

where you can see that, internally, the fields of "PROBLEM" are represented in 
uppercase despite the user (me) had not defined them this way. The result is I 
guess that parameter referring to the parent entity ${entity.field} should 
always be in uppercase, i.e. ${entity.FIELD}.

Here is an example of the indexed entity as written after full-import command 
with debug and verbose on:
<arr name="documents">
−
<lst>
−
<arr name="problem_nazov">
<str>test zodpovedneho</str>
</arr>
−
<arr name="problem_id">
<str>2533274790395945</str>
</arr>
−
<arr name="problem_cislo">
<str>2010093000004</str>
</arr>
−
<arr name="problem_popis">
<str>csfdewafedewfw</str>
</arr>
−
<arr name="komentar_id">
<str>java.math.BigDecimal:5066549580791985</str>
</arr>
−
<arr name="komentar_text">
<str>a.TXT</str>
</arr>
</lst>

here are the field names in lower case. I consider this as a bug. Maybe I am 
wrong and its a feature. I work with SOLR only for few days.


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to