Digy, It's serendipity that this is the first email that I receive in joining this group, as the reason I joined was because I found that I very much don't like the API or some of the translations from the Java version of Lucene.
To that end, I've taken the stable release (2.0) and started to do a port to 3.5 (although most of it is 2.0 compliant, I use LINQ in very few places), addressing most of the following at this point: - Proper implementation of IDisposable over Close methods - Proper implementation of IEnumerable<T> and replacing for with foreach loops - Use of LINQ in some places in order to make code more declarative (e.g. flatting out nested loops) - Removed use of Join method on the Thread class (it is depreciated), replaced with other .NET synchronization primitives. - Replacing ArrayList and Hashtable with List<T> and Dictionary<TKey, TValue> instances - Using generic versions vs non-generic versions, especially when a type parameter is a structure provides massive performance gains (due to lack of boxing) - Where synchronized versions were used, locks were put into place at appropriate areas to lock access - Lock scope was expanded to ensure that multiple operations on the same synchronized resource is atomic - Implementing .NET types where appropriate - e.g. ScoreDocComparator becomes IScoreDocComparer, deriving from IComparer<ScoreDoc> - Methods that override Equals implement IEquatable<T>, and possibly, IComparable<T> - Condensing types - e.g. ICharStream is defined twice. The list goes on of course. But these are some of the biggies. I'm currently getting the source from SVN, and seeing where I can contribute without causing too much of a fuss. =) - Nick -----Original Message----- From: Digy [mailto:digyd...@gmail.com] Sent: Monday, November 09, 2009 1:19 PM To: lucene-net-user@incubator.apache.org Subject: RE: 2.9 Target Framework I think we should stick to .NET 2.0 till Lucene 3.0 which can be a good place to switch to .NET 3.5 (so will Lucene.Java do also). There are also a lot of places where smarter codes can be used ( replacing "GetEnumerator+while" with "foreach", implementing a .NET like "Set" instead of using Hashtable etc.) But it can be a problem in porting unless we catch up with Lucene.Java. DIGY -----Original Message----- From: Michael Garski [mailto:mgar...@myspace-inc.com] Sent: Monday, November 09, 2009 7:26 PM To: lucene-net-...@incubator.apache.org; lucene-net-user@incubator.apache.org Subject: 2.9 Target Framework Apologies for the cross-posting to both lists, but I think this issue is applicable to both. What is the target framework for Lucene.Net 2.9? I'm assuming 2.0 but would like to ensure this is defined. There are a few cases in some of the internal implementation where use of LINQ would be handy, such as in collection transformations to arrays. Overall, it's not a big deal to target 2.0 however some of the implementation will be a bit more elegant and precise if we target 3.5. Cheers, Michael Michael Garski Sr. Search Architect 310.969.7435 (office) 310.251.6355 (mobile) www.myspace.com/michaelgarski
smime.p7s
Description: S/MIME cryptographic signature