You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Alexey Serba <as...@gmail.com> on 2010/02/08 11:29:04 UTC
DataImportHandler - case sensitivity of column names
I encountered the problem with Oracle converting column names to upper
case. As a result SolrInputDocument is created with field names in
upper case and "Document [null] missing required field: id" exception
is thrown ( although ID field is defined ).
I do not specify "field" elements explicitly.
I know that I can rewrite all my queries to "select id as "id", body
as "body" from document" format, but is there any other workaround for
this? case insensitive option or something?
Here's my data-config:
<dataConfig>
<dataSource convertType="true"
driver="oracle.jdbc.driver.OracleDriver" password="oracle"
url="jdbc:oracle:thin:@localhost:1521:xe" user="SYSTEM"/>
<document name="items">
<entity name="root" pk="id" preImportDeleteQuery="db:db1"
query="select id, body from document"
transformer="TemplateTransformer">
<entity name="nested1" query="select category from
document_category where doc_id='${root.id}'"/>
<entity name="nested2" query="select tag from document_tag where
doc_id='${root.id}'"/>
<field column="db" template="db1"/>
</entity>
</document>
</dataConfig>
Alexey
Re: DataImportHandler - case sensitivity of column names
Posted by Shalin Shekhar Mangar <sh...@gmail.com>.
On Mon, Feb 8, 2010 at 3:59 PM, Alexey Serba <as...@gmail.com> wrote:
> I encountered the problem with Oracle converting column names to upper
> case. As a result SolrInputDocument is created with field names in
> upper case and "Document [null] missing required field: id" exception
> is thrown ( although ID field is defined ).
>
> I do not specify "field" elements explicitly.
>
> I know that I can rewrite all my queries to "select id as "id", body
> as "body" from document" format, but is there any other workaround for
> this? case insensitive option or something?
>
> Here's my data-config:
> <dataConfig>
> <dataSource convertType="true"
> driver="oracle.jdbc.driver.OracleDriver" password="oracle"
> url="jdbc:oracle:thin:@localhost:1521:xe" user="SYSTEM"/>
> <document name="items">
> <entity name="root" pk="id" preImportDeleteQuery="db:db1"
> query="select id, body from document"
> transformer="TemplateTransformer">
> <entity name="nested1" query="select category from
> document_category where doc_id='${root.id}'"/>
> <entity name="nested2" query="select tag from document_tag where
> doc_id='${root.id}'"/>
> <field column="db" template="db1"/>
> </entity>
> </document>
> </dataConfig>
>
>
Fields are imported in a case-insensitive manner as long as they are not
specified explicitly. In this case, however, the problem is that the ${
root.id} is case sensitive. There is no way right now to resolve variables
in a case-insensitive manner.
--
Regards,
Shalin Shekhar Mangar.