hi Julio,
delete my previous response. In your schema , 'id' is the uniqueKey.
make  'comboid' the unique key. Because that is the target field name
coming out of the entity 'owners'

--Noble

On Tue, Jun 3, 2008 at 9:46 AM, Noble Paul നോബിള്‍ नोब्ळ्
<[EMAIL PROTECTED]> wrote:
> The field 'id' is repeated for pet also rename it to something else
> say
>  <entity name="pets" pk="id"
>               query="SELECT id,name,birth_date,type_id FROM pets WHERE
> owner_id='${owners.id}'"
>               parentDeltaQuery="SELECT id FROM owners WHERE
> id=${pets.owner_id}">
>           <field column="id"          name="petid"/>
> </entity>
>
> --Noble
>
> On Tue, Jun 3, 2008 at 3:28 AM, Julio Castillo <[EMAIL PROTECTED]> wrote:
>> Shalin,
>> I experimented with it, and the null pointer exception has been taken care
>> of. Thank you.
>>
>> I have a different problem now. I believe it is a syntax/specification
>> problem.
>>
>> When importing data, I got the following exceptions:
>> SEVERE: Exception while adding:
>> SolrInputDocumnt[{comboId=comboId(1.0)={owners-9},
>> userName=userName(1.0)={[David, Schroeder]}}]
>>
>> org.apache.solr.common.SolrException: Document [null] missing required
>> field: id
>>        at
>> org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:289)
>>        at
>> org.apache.solr.handler.dataimport.DataImportHandler$1.upload(DataImportHand
>> ler.java:263)
>>        ...
>>
>> The problem arises the moment I try to include nested entities (e.g. pets
>> -the problem does not occur if I don't use the transformer, but I have to
>> use the transformer because other unrelated entities also have id's).
>> My data config file looks as follows.
>>
>> <dataConfig>
>>  <document name="doc-1">
>>    <entity name="owners" pk="id"
>>            query="select id,first_name,last_name FROM owners"
>>            transformer="TemplateTransformer">
>>        <field column="id"  name="comboId"  template="owners-${owners.id}"/>
>>        <field column="first_name" name="userName"/>
>>        <field column="last_name"  name="userName"/>
>>
>>        <entity name="pets" pk="id"
>>                query="SELECT id,name,birth_date,type_id FROM pets WHERE
>> owner_id='${owners.id}'"
>>                parentDeltaQuery="SELECT id FROM owners WHERE
>> id=${pets.owner_id}">
>>            <field column="id"          name="id"/>
>>            <field column="name"        name="name"/>
>>            <field column="birth_date" name="birthDate"/>
>>        </entity>
>>    </entity>
>>  </document>
>> </dataConfig>
>>
>> The debug output of the data import looks as follows:
>>
>> ....
>> - <lst name="verbose-output">
>>  - <lst name="entity:owners">
>>    - <lst name="document#1">
>>      <str name="query">select id,first_name,last_name FROM owners</str>
>>      <str name="time-taken">0:0:0.15</str>
>>      <str>----------- row #1-------------</str>
>>      <int name="id">1</int>
>>      <str name="first_name">George</str>
>>      <str name="last_name">Franklin</str>
>>      <str>---------------------------------------------</str>
>>      - <lst name="transformer:TemplateTransformer">
>>        <str>---------------------------------------------</str>
>>        <str name="id">owners-1</str>
>>        <str name="first_name">George</str>
>>        <str name="last_name">Franklin</str>
>>        <str>---------------------------------------------</str>
>>        - <lst name="entity:pets">
>>          <str name="query">SELECT id,name,birth_date,type_id FROM pets
>> WHERE owner_id='owners-1'</str>
>>          <str name="time-taken">0:0:0.0</str>
>>          </lst>
>>      </lst>
>>  </lst>
>> + <lst name="document#1">
>> ....
>>
>> Thanks again
>>
>> ** julio
>>
>>
>> -----Original Message-----
>> From: Shalin Shekhar Mangar [mailto:[EMAIL PROTECTED]
>> Sent: Saturday, May 31, 2008 10:26 AM
>> To: solr-user@lucene.apache.org
>> Subject: Re: How to describe 2 entities in dataConfig for the DataImporter?
>>
>> Hi Julio,
>>
>> I've fixed the bug, can you please replace the exiting
>> TemplateTransformer.java in the SOLR-469.patch and use the attached
>> TemplateTransformer.java file. We'll add the changes to our next patch.
>> Sorry for all the trouble.
>>
>> On Sat, May 31, 2008 at 10:31 PM, Noble Paul ??????? ??????
>> <[EMAIL PROTECTED]> wrote:
>>> julio,
>>> Looks like it is a bug.
>>> We can give u a new TemplateTransformer.java which we will incorporate
>>> in the next patch --Noble
>>>
>>> On Sat, May 31, 2008 at 12:24 AM, Julio Castillo
>>> <[EMAIL PROTECTED]> wrote:
>>>> I'm sorry Shalin, but I still get the same Null Pointer exception.
>>>> This is my complete dataconfig.xml (I remove the parallel entity to
>>>> narrow down the scope of the problem).
>>>> <dataConfig>
>>>>  <document name="doc-1">
>>>>    <entity name="vets" pk="id"
>>>>            query="select id as idAlias,first_name,last_name FROM vets"
>>>>            deltaQuery="SELECT id as idAlias FROM vets WHERE
>>>> last_modified > '${dataimporter.last_index_time}'"
>>>>            transformer="TemplateTransformer">
>>>>        <field column="id"              name="id"
>>>> template="vets-${vets.idAlias}"/>
>>>>        <field column="first_name"      name="userName"/>
>>>>        <field column="last_name"       name="userName"/>
>>>>    </entity>
>>>>  </document>
>>>> </dataConfig>
>>>>
>>>> Thanks again.
>>>>
>>>> ** julio
>>>>
>>>> -----Original Message-----
>>>> From: Shalin Shekhar Mangar [mailto:[EMAIL PROTECTED]
>>>> Sent: Friday, May 30, 2008 11:38 AM
>>>> To: solr-user@lucene.apache.org
>>>> Subject: Re: How to describe 2 entities in dataConfig for the
>> DataImporter?
>>>>
>>>> The surname is used just as an example of a field.
>>>>
>>>> The NullPointerException is because the same field "id" tries to use
>>>> it's own value in a template. The template cannot contain the same
>>>> field on which it is being applied. I'd suggest that you get the id
>>>> aliased to another name, for example using a query "select id as
>>>> idAlias from vets" and then
>>>> use:
>>>> <field column="id" template="vets-${vets.idAlias}" />
>>>>
>>>> That should work, let me know if you face a problem.
>>>>
>>>> On Fri, May 30, 2008 at 10:40 PM, Julio Castillo
>>>> <[EMAIL PROTECTED]>
>>>> wrote:
>>>>> Thanks for all the leads.
>>>>> I did get however a null pointer exception while implementing it:
>>>>>
>>>>> May 30, 2008 9:57:50 AM
>>>>> org.apache.solr.handler.dataimport.EntityProcessorBase
>>>>> applyTransformer
>>>>> WARNING: transformer threw error
>>>>> java.lang.NullPointerException
>>>>>   at
>>>>> org.apache.solr.handler.dataimport.TemplateTransformer.transformRow(
>>>>> Te
>>>>> mplate
>>>>> Transformer.java:55)
>>>>>   at
>>>>> org.apache.solr.handler.dataimport.EntityProcessorBase.applyTransfor
>>>>> me
>>>>> r(Enti
>>>>> tyProcessorBase.java:186)
>>>>>
>>>>> Looking at the source code, it appears that the resolverMap is null.
>>>>> The resolver returned null given the entityName.
>>>>>
>>>>> Looking at the documentation, there is the reference to a
>> eparent.surname.
>>>>> The example says:
>>>>> <field column="namedesc" template="hello${e.name},${eparent.surname}"
>>>>> />
>>>>>
>>>>> I'm afraid, I don't know what an eparent.surname is. This is my
>>>>> current dataconfig.xml configuration excerpt:
>>>>>
>>>>> <entity name="vets" pk="id"  query="..." deltaQuery="..."
>>>>> transformer="TemplateTransformer">
>>>>>  <field column="id" name="id" template="vets-${vets.id}"/>  ...
>>>>>
>>>>> Am I missing a surname? Whatever that may be?
>>>>>
>>>>> Thanks
>>>>>
>>>>> ** julio
>>>>>
>>>>> -----Original Message-----
>>>>> From: Noble Paul ??????? ?????? [mailto:[EMAIL PROTECTED]
>>>>> Sent: Thursday, May 29, 2008 11:10 PM
>>>>> To: solr-user@lucene.apache.org
>>>>> Subject: Re: How to describe 2 entities in dataConfig for the
>>>> DataImporter?
>>>>>
>>>>> Sorry I forgot to mention that.
>>>>> http://wiki.apache.org/solr/DataImportHandler#head-a6916b30b5d7605a9
>>>>> 90
>>>>> fb03c4
>>>>> ff461b3736496a9
>>>>> --Noble
>>>>>
>>>>> On Fri, May 30, 2008 at 11:37 AM, Shalin Shekhar Mangar
>>>>> <[EMAIL PROTECTED]> wrote:
>>>>>> You need to enable TemplateTransformer for your entity. For example:
>>>>>> <entity name="owners" pk="id" query="...."
>>>>>> transformer="TemplateTransformer">
>>>>>>
>>>>>> On Fri, May 30, 2008 at 11:31 AM, Julio Castillo
>>>>>> <[EMAIL PROTECTED]> wrote:
>>>>>>> Noble,
>>>>>>> I tried the template setting for the "id" field, but I didn't
>>>>>>> notice any different behavior. I also didn't see where this would be
>> reflected.
>>>>>>> I looked at the fields and the debug output for the dataImporter
>>>>>>> and couldn't see any reference to a modified id name (per the
>>>>>>> template instructions).
>>>>>>>
>>>>>>> The behavior in the end seemed to be the same. Did I miss anything?
>>>>>>> I assume that the <uniqueKey>id</uniqueKey> setting in the
>>>>>>> schema.xml remains the same?
>>>>>>>
>>>>>>> Thanks again
>>>>>>>
>>>>>>> ** julio
>>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: Noble Paul ??????? ?????? [mailto:[EMAIL PROTECTED]
>>>>>>> Sent: Thursday, May 29, 2008 9:46 PM
>>>>>>> To: solr-user@lucene.apache.org
>>>>>>> Subject: Re: How to describe 2 entities in dataConfig for the
>>>>> DataImporter?
>>>>>>>
>>>>>>> Consider constructing the id concatenating an extra string for
>>>>>>> each document . You can construct that field using the
>> TeplateTransformer.
>>>>>>> in the entity owners keep the id as
>>>>>>>
>>>>>>> <field column="id" name="id" template="owners-${owners.id}"/> and
>>>>>>> in vets <field column="id" name="id" template="vets-${vets.id}"/>
>>>>>>>
>>>>>>> or anything else which can make it unique
>>>>>>>
>>>>>>> --Noble
>>>>>>>
>>>>>>> On Fri, May 30, 2008 at 10:05 AM, Shalin Shekhar Mangar
>>>>>>> <[EMAIL PROTECTED]> wrote:
>>>>>>>> That will happen only if id is the uniqueKey in Solr and the id
>>>>>>>> coming from both your tables have same values. In that case, they
>>>>>>>> will overwrite each other. You will need a separate uniqueKey (on
>>>>>>>> other than id field).
>>>>>>>>
>>>>>>>> On Fri, May 30, 2008 at 6:34 AM, Julio Castillo
>>>>>>>> <[EMAIL PROTECTED]>
>>>>>>> wrote:
>>>>>>>>> Thanks Shalin,
>>>>>>>>> I tried putting everything under the same document (two
>>>>>>>>> different unrelated entities), and got a bit further.
>>>>>>>>>
>>>>>>>>> My problem now appears to be both of them stepping on each other
>>>>>>>>> due to
>>>>>>> "id"
>>>>>>>>> conflicts. Currently my id is defined in my schema as <field
>>>>>>>>> name="id" type="long" indexed="true" stored="true"
>>>>>>>>> required="true"/>
>>>>>>>>>
>>>>>>>>> Do I have to create a new "id" field?
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>>
>>>>>>>>> ** julio
>>>>>>>>>
>>>>>>>>> -----Original Message-----
>>>>>>>>> From: Shalin Shekhar Mangar [mailto:[EMAIL PROTECTED]
>>>>>>>>> Sent: Thursday, May 29, 2008 11:40 AM
>>>>>>>>> To: solr-user@lucene.apache.org
>>>>>>>>> Subject: Re: How to describe 2 entities in dataConfig for the
>>>>>>> DataImporter?
>>>>>>>>>
>>>>>>>>> Hi Julio,
>>>>>>>>>
>>>>>>>>> The first data-config is correct.
>>>>>>>>>
>>>>>>>>> You're running DataImportHandler in debug mode which creates
>>>>>>>>> only the first 10 documents by default. You can also add count=N
>>>>>>>>> to index only the first N documents. But this is intended only
>>>>>>>>> for debugging purposes. If you want to do a full-import just use
>>>>>>>>> /dataimport?command=full-import. By default, a full-import
>>>>>>>>> automatically
>>>>>>> cleans and commits.
>>>>>>>>>
>>>>>>>>> Hope that helps.
>>>>>>>>>
>>>>>>>>> On Thu, May 29, 2008 at 11:42 PM, Julio Castillo
>>>>>>>>> <[EMAIL PROTECTED]>
>>>>>>>>> wrote:
>>>>>>>>>> I have 2 dB tables unrelated to each other that I want to index.
>>>>>>>>>>
>>>>>>>>>> I have tried 2 approaches for specifying them in my
>>>>>>>>>> data-config.xml
>>>>>>> file.
>>>>>>>>>> None of them seem to work (it seems I can only get data for the
>>>>>>>>>> first one listed).
>>>>>>>>>>
>>>>>>>>>> CASE 1)
>>>>>>>>>> <dataConfig>
>>>>>>>>>>  <document name="test">
>>>>>>>>>>    <entity name="owners" pk="id" query="....">
>>>>>>>>>>      <field column="id" name="id"/>
>>>>>>>>>>      <field column=name" name="userName"/>
>>>>>>>>>>    </entity>
>>>>>>>>>>    <entity name="vets" pk="id" query="....">
>>>>>>>>>>      <field column="id" name="id"/>
>>>>>>>>>>      <field column=name" name="userName"/>
>>>>>>>>>>    </entity>
>>>>>>>>>>  </document>
>>>>>>>>>> </dataConfig>
>>>>>>>>>>
>>>>>>>>>> CASE 2)
>>>>>>>>>> <dataConfig>
>>>>>>>>>>  <document name="test-1">
>>>>>>>>>>    <entity name="owners" pk="id" query="....">
>>>>>>>>>>      <field column="id" name="id"/>
>>>>>>>>>>      <field column=name" name="userName"/>
>>>>>>>>>>    </entity>
>>>>>>>>>>  </document>
>>>>>>>>>>  <document name="test-2">
>>>>>>>>>>    <entity name="vets" pk="id" query="....">
>>>>>>>>>>      <field column="id" name="id"/>
>>>>>>>>>>      <field column=name" name="userName"/>
>>>>>>>>>>    </entity>
>>>>>>>>>>  </document>
>>>>>>>>>> </dataConfig>
>>>>>>>>>>
>>>>>>>>>> I ran the dataImporter as follows
>>>>>>>>>> http://localhost:2455/solr/dataimport?command=full-import&debug
>>>>>>>>>> =o
>>>>>>>>>> n
>>>>>>>>>> &v
>>>>>>>>>> er
>>>>>>>>>> bose=t
>>>>>>>>>> rue&clean=true&commit=true
>>>>>>>>>>
>>>>>>>>>> After running Case 1 the output only shows documents under
>>>>>>> entity:owners.
>>>>>>>>>> And an empty reference to entity:vets (no data).
>>>>>>>>>>
>>>>>>>>>> After running Case 2, the output only shows documents under
>>>>>>> entity:owners.
>>>>>>>>>> No references to entity:vets.
>>>>>>>>>>
>>>>>>>>>> In either case, I have commented out the entity:owners and I do
>>>>>>>>>> see the entity:vets data then.
>>>>>>>>>>
>>>>>>>>>> Thanks for your assistance
>>>>>>>>>>
>>>>>>>>>> Julio Castillo
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Regards,
>>>>>>>>> Shalin Shekhar Mangar.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Regards,
>>>>>>>> Shalin Shekhar Mangar.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> --Noble Paul
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Regards,
>>>>>> Shalin Shekhar Mangar.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> --Noble Paul
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Regards,
>>>> Shalin Shekhar Mangar.
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> --Noble Paul
>>>
>>
>>
>>
>> --
>> Regards,
>> Shalin Shekhar Mangar.
>>
>>
>
>
>
> --
> --Noble Paul
>



-- 
--Noble Paul

Reply via email to