lucene-pylucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Hall <lucene.apache....@darkart.com>
Subject Re: Using IndexWriter.commit(Map<String,String> commitUserData) in pylucene
Date Wed, 19 Jan 2011 22:56:01 GMT
On Wed, Jan 19, 2011 at 11:05:28AM -0800, Andi Vajda wrote:
> 
> On Wed, 19 Jan 2011, Eric Hall wrote:
> 
> >	I'd like to store some index metadata using
> >
> >	IndexWriter.commit(Map<String,String> commitUserData)
> >
> >	I've set up a python dict with string to string mappings,
> >but if I use that I get an InvalidArgsError.  Is there a different
> >python type to use in this call?
> 
> Yes, use a Java HashMap for which there is a Python wrapper in PyLucene:
> 
>   >>> import lucene
>   >>> lucene.initVM()
>   <jcc.JCCEnv object at 0x10040a0d8>
>   >>> a = lucene.HashMap().of_(lucene.String, lucene.String)
>   >>> a.put('foo', 'bar')
>   >>> a
>   <HashMap: {foo=bar}>
> 
> The use of the of_() method is optional but it conveys the <String, String>
> part and helps with enforcing the generic parameter and return type for the 
> map's methods.
> 
> If you'd rather use a Python dict directly, see the example in PyLucene's 
> python/collections.py module where a Python set is wrapped by a class 
> called JavaSet. The same could be implemented for the java.util.Map 
> interface.

	Tha HashMap()... method works fine for storing the metadata, and luke
shows that its there.  Of course getting the metadata back for later
comparison/display is also useful, and seemed like it would be
straightforward....  Naturally its not working using:

	indexMetaDataHashMap = reader.getCommitUserData()

	I get an empty hashmap back from the above.  I also tried using:

	indexCommit = reader.getIndexCommit
	indexMetaDataHashMap = indexCommit.getUserData()

with the same result (empty hashmap).  Is there a different way to do this?


		Thanks again,


		-eric




Mime
View raw message