no probs We can fix that using reflection. I shall give a patch w/ that.
Probably it is better to fix it in a Transformer



On Tue, Dec 2, 2008 at 1:56 PM, Joel Karlsson <[EMAIL PROTECTED]> wrote:
> True, but perhaps it works with java.sql.Clob as well, haven't tried it
> though.
>
> 2008/12/2 Noble Paul നോബിള്‍ नोब्ळ् <[EMAIL PROTECTED]>
>
>> cool
>>
>> The only problem is that java.sql.Clob#getCharacterStream() is package
>> private and you have to use the oracle.sql.CLOB
>>
>>
>>
>> On Tue, Dec 2, 2008 at 1:38 PM, Joel Karlsson <[EMAIL PROTECTED]>
>> wrote:
>> > Thanks for your reply!
>> >
>> > I wrote such a transformer and now it seems to work perfectly. Here's the
>> > code for the transformer if anyone encounters the same problem, or if
>> anyone
>> > want to improve it:
>> >
>> > import org.apache.solr.handler.dataimport.*;
>> > import oracle.sql.CLOB;
>> > import java.util.*;
>> > import java.io.*;
>> >
>> > public class ClobTransformer extends Transformer
>> > {
>> >    public Map<String, Object> transformRow(Map<String, Object> row,
>> Context
>> > context)
>> >    {
>> >        List<Map<String, String>> fields = context.getAllEntityFields();
>> >        for (Map<String, String> field : fields)
>> >        {
>> >            String toString = field.get("toString");
>> >            if ("true".equals(toString))
>> >            {
>> >                String columnName = field.get("column");
>> >                CLOB clob = (CLOB)row.get(columnName);
>> >                if (clob != null)
>> >                {
>> >                    StringBuffer strOut = new StringBuffer();
>> >                    String app;
>> >                    try {
>> >                    BufferedReader br = new
>> > BufferedReader(clob.getCharacterStream());
>> >                    while ((app=br.readLine())!=null)
>> >                    strOut.append(app);
>> >                    } catch (Exception e) { e.printStackTrace(); }
>> >
>> >                    row.put(columnName, strOut.toString());
>> >                }
>> >            }
>> >        }
>> >        return row;
>> >
>> >    }
>> > }
>> >
>> > // Joel
>> >
>> > 2008/12/2 Noble Paul നോബിള്‍ नोब्ळ् <[EMAIL PROTECTED]>
>> >
>> >> Hi Joel,
>> >> DIH does not translate Clob automatically to text.
>> >>
>> >> We can open that as an issue.
>> >> meanwhile you can write a transformer of your own to read Clob and
>> >> convert to text.
>> >>
>> >>
>> http://wiki.apache.org/solr/DataImportHandler#head-4756038c418ab3fa389efc822277a7a789d27688
>> >>
>> >>
>> >> On Tue, Dec 2, 2008 at 2:57 AM, Joel Karlsson <[EMAIL PROTECTED]>
>> >> wrote:
>> >> > Thanks for your reply!
>> >> >
>> >> > I'm already using the DataImportHandler for indexing. Do I still have
>> to
>> >> > convert the Clob myself or are there any built-in functions that I've
>> >> > missed?
>> >> >
>> >> > // Joel
>> >> >
>> >> >
>> >> > 2008/12/1 Yonik Seeley <[EMAIL PROTECTED]>
>> >> >
>> >> >> If you are querying Oracle yourself and using something like SolrJ,
>> >> >> then you must convert the Clob yourself into a String representation.
>> >> >>
>> >> >> Also, did you look at Solr's DataImportHandler?
>> >> >>
>> >> >> -Yonik
>> >> >>
>> >> >> On Mon, Dec 1, 2008 at 3:11 PM, Joel Karlsson <[EMAIL PROTECTED]
>> >
>> >> >> wrote:
>> >> >> > Hello everyone,
>> >> >> >
>> >> >> > I'm trying to index on an Oracle DB, but can't seem to find any
>> built
>> >> in
>> >> >> > support for objects of type oracle.sql.Clob. The field I try to put
>> >> the
>> >> >> data
>> >> >> > into is of type text, but after indexing it only contains the
>> >> >> Clob-objects
>> >> >> > string representation, i.e. something like
>> [EMAIL PROTECTED]
>> >> >> who
>> >> >> > knows how to get Solr to index the content of these objects rather
>> >> than
>> >> >> its
>> >> >> > string representation??
>> >> >> >
>> >> >> > Thanks in advance! // Joel
>> >> >> >
>> >> >>
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> --Noble Paul
>> >>
>> >
>>
>>
>>
>> --
>> --Noble Paul
>>
>



-- 
--Noble Paul

Reply via email to