Hi Paul,
The forEach="/document/category/item | /document/category/name" didn't work (no 
categoryname was stored or indexed).
However forEach="/document/category/item | /document/category" seems to work 
well. I am not sure why category on its own works, but not category/name...
But thanks for tip. It wasn't as painful as I thought it would be.
Venn

> From: noble.p...@corp.aol.com
> Date: Thu, 10 Sep 2009 09:58:21 +0530
> Subject: Re: Extract info from parent node during data import
> To: solr-user@lucene.apache.org
> 
> try this
> 
> add two xpaths in your forEach
> 
> forEach="/document/category/item | /document/category/name"
> 
> and add a field as follows
> 
> <field column="catgoryname" xpath ="/document/category/name"
> commonField="true"/>
> 
> Please try it out and let me know.
> 
> On Thu, Sep 10, 2009 at 7:30 AM, venn hardy <venn.ha...@hotmail.com> wrote:
> >
> > Hello,
> >
> >
> >
> > I am using SOLR 1.4 (from nighly build) and its URLDataSource in 
> > conjunction with the XPathEntityProcessor. I have successfully imported XML 
> > content, but I think I may have found a limitation when it comes to the 
> > commonField attribute in the DataImportHandler.
> >
> >
> >
> > Before writing my own parser to read in a whole XML document, I thought I'd 
> > post the question here (since I got some great advice last time).
> >
> >
> >
> > The bulk of my content is contained within each <item> tag. However, each 
> > item has a parent called <category> and each category has a name which I 
> > would like to import. In my forEach loop I specify the 
> > /document/category/item as the collection of items I am interested in. Is 
> > there anyway to extract an element from underneath a parent node? To be a 
> > more more specific (see eg xml below). I would like to index the following:
> >
> > - category: Category 1; id: 1; author: Author 1
> >
> > - category: Category 1; id: 2; author: Author 2
> >
> > - category: Category 2; id: 3; author: Author 3
> >
> > - category: Category 2; id: 4; author: Author 4
> >
> >
> >
> > Any ideas on how I can get to a parent node from within a child during data 
> > import? If it cant be done, what do you suggest would be the best way so I 
> > can keep using the DataImportHandler... would XSLT be a good idea to 
> > 'flatten out' the structure a bit?
> >
> >
> >
> > Thanks
> >
> >
> >
> > This is what my XML document looks like:
> >
> > <document>
> >  <category>
> >  <name>Category 1</name>
> >  <item>
> >   <id>1</id>
> >   <author>Author 1</author>
> >  </item>
> >  <item>
> >   <id>2</id>
> >   <author>Author 2</author>
> >  </item>
> >  </category>
> >  <category>
> >  <name>Category 2</name>
> >  <item>
> >   <id>3</id>
> >   <author>Author 3</author>
> >  </item>
> >  <item>
> >   <id>4</id>
> >   <author>Author 4</author>
> >  </item>
> >  </category>
> > </document>
> >
> >
> >
> > And this is what my dataConfig looks like:
> > <dataConfig>
> >  <dataSource type="URLDataSource" />
> >  <document>
> >   <entity name="archive" pk="id" 
> > url="http://localhost:9080/data/20090817070752.xml"; 
> > processor="XPathEntityProcessor" forEach="/document/category/item" 
> > transformer="DateFormatTransformer" stream="true" dataSource="dataSource">
> >    <field column="category" xpath="/document/category/name" 
> > commonField="true" />
> >    <field column="id" xpath="/document/category/item/id" />
> >    <field column="author" xpath="/document/category/item/author" />
> >   </entity>
> >  </document>
> > </dataConfig>
> >
> >
> >
> > This is how I have specified my schema
> > <fields>
> >   <field name="id" type="string" indexed="true" stored="true" 
> > required="true" />
> >   <field name="author" type="string" indexed="true" stored="true"/>
> >   <field name="category" type="string" indexed="true" stored="true"/>
> > </fields>
> >
> > <uniqueKey>id</uniqueKey>
> > <defaultSearchField>id</defaultSearchField>
> >
> >
> >
> >
> >
> >
> > _________________________________________________________________
> > Need a place to rent, buy or share? Let us find your next place for you!
> > http://clk.atdmt.com/NMN/go/157631292/direct/01/
> 
> 
> 
> -- 
> -----------------------------------------------------
> Noble Paul | Principal Engineer| AOL | http://aol.com

_________________________________________________________________
Get Hotmail on your iPhone Find out how here
http://windowslive.ninemsn.com.au/article.aspx?id=845706

Reply via email to