No, a copyField will not do the xlation from (seconds from epoch) to
(milliseconds from 1/1/1970). You should be able to do this with a
combination of functions in your database SELECT call. The major DBs
all have a wealth of functions that xform between numbers and dates.

The DIH is smart about types: if the DB select returns a value as a
database date type, it becomes a java.sql.Date which the DIH then
makes a Solr 'tdate'.

In MYSQL there's a bunch of time/date/number/string xformers:

http://dev.mysql.com/tech-resources/articles/4.1/time.html

It's easier to do this in the database, than in the DIH.

On 4/15/10, Shawn Heisey <s...@elyograg.org> wrote:
> It's stored in the database as a bigint, seconds since epoch, not a
> date.  I need to store the integer value in Solr for the application to
> consume (done as a tlong), but I want to create a second copy that's
> tdate.  That's the part I don't know how to do.  If I just do a
> copyField in the schema, will that do it, or will I need to write some
> magic somewhere?
>
> Shawn
>
>
> On 4/14/2010 9:46 PM, Lance Norskog wrote:
>> Wait- it's in a database? That's much simpler.
>>
>> The select should supply the date as an SQL Date or Timestamp type.
>> The DIH will get this directly and store it as a Solr tdate. You
>> should not have to do any arithmetic or formatting of date strings.
>>
>> This may need a few layers of SQL functions.
>>
>> On 4/14/10, Shawn Heisey<s...@elyograg.org>  wrote:
>>
>>> On 4/14/2010 8:12 AM, Shawn Heisey wrote:
>>>
>>>> On 4/12/2010 9:29 PM, Lance Norskog wrote:
>>>>
>>>>> During indexing: the basic Solr XmlUpdateHandler does not have a
>>>>> facility for this. In the DataImportHandler you can add Javascript
>>>>> that takes your 'seconds since epoch', adds the delta between your
>>>>> epoch and 1/1/1970, and multiplies by 1000.
>>>>>
>>>> I had hoped there was a way to tell schema.xml to do the math, but
>>>> this sounds like there isn't.  If you could point me at some examples
>>>> of how to put javascript into data-config.xml, then I could probably
>>>> work out how to do the javascript that I would need.  I might be able
>>>> to alter my SQL query in the DIH config to multiply the value by 1000,
>>>> but that puts all the load on the SQL server instead of utilizing the
>>>> multiple CPUs involved in my shards.  I'm pretty sure that the epoch
>>>> on my dates is also 1970/01/01.
>>>>
>>>> What I'd truly like is a way to convert it directly to tdate, so all
>>>> of Solr's date capabilities become available.  Is that nontrivial, or
>>>> is that perhaps what you've been already describing?
>>>>
>>>> Thanks for all the help you've given so far.  I've made a lot of
>>>> progress.
>>>>
>>>>
>>>
>>>
>>
>>
>
>


-- 
Lance Norskog
goks...@gmail.com

Reply via email to