Idisposable has more to do releasing resources and gc

On Tue, Jan 4, 2011 at 11:27 AM, Robert Muir <rcm...@gmail.com> wrote:

> On Tue, Jan 4, 2011 at 10:49 AM, Peter Mateja <peter.mat...@gmail.com>
> wrote:
> >> I made a request of the community in the Lucere project mailing list
> >> to respond with ideas about what an ideal .NET API would look like,
> >> and how it would function. Specifically, I was hoping to get
> >> pseudo-code examples of how end users would like to use Lucene. Even
> >> something as simple as:
> >>
> >> using(var luceneIndex = new LuceneIndex.Open("C:\foo\bar"))
> >> {
> >>  var hitDocs = from doc in luceneIndex where
> >> doc.Field["content"].Match("foo") select doc;
> >> }
>
> Hi guys, I know almost nothing of .NET (lucene java developer here),
> but I was hoping I could provide some suggestions here to help out.
>
> In glancing at some of the issues surrounding a more ".NET" api, i
> couldn't help but notice many of the issues people complain about, are
> because lucene.net hasn't implemented lucene 3.0
>
> # lucene 3.0.x is the same feature-wise as lucene 2.9.x, no new features.
> # lucene 3.0.x is Java 5, which is almost a different programming
> language than Java 4 (2.9.x). This means enums, generics, Closeable,
> foreach (instead of Iterators), autoboxing, annotations, etc.
>
> A lot of the issues people have raised seem to be due to the fact that
> lucene 2.9.x is in an ancient java version... I think if you ported
> 3.0, things would look a lot more idiomatic (although surely not
> perfect for .NET users, but better!).
>
> For example, taking a glance, I people making the .NET forks actually
> doing things like taking the 2.9.x code and converting Field.java to
> use enums, which is really a duplication of effort since we did this
> in java over a year ago!:
>
>
> http://svn.apache.org/repos/asf/lucene/java/branches/lucene_3_0/src/java/org/apache/lucene/document/Field.java
>
> So, I'm suggesting that one thing you could consider is to start
> focusing on lucene 3.0.x, to also produce a more idiomatic api
> automatically, and possibly this would be a good enough improvement to
> bring in some developers from those forks.
>
> Separately, I'm trying to understand the syntax you provided about
> IDisposable/using. Obviously, as part of your porting process you
> could take anything marked Closeable [we marked anything wtih a
> .close() as Closeable in Lucene 3.0], and mark it IDisposable, but is
> this really the best approach?
>
> For example, the syntax you provided seems like it would encourage
> closing the IndexReader and opening a new one for each search
> request... yet this is about the biggest no-no you can do with a
> lucene index... opening a new IndexReader is very heavy and you should
> re-use it across queries and not open/close them often... so in this
> case, a more idiomatic API could actually be bad, if it encourages
> worst practices...
>



-- 
Michael Herndon
Senior Developer (mhern...@o19s.com)
804.767.0083

[connect online]
http://www.opensourceconnections.com
http://www.amptools.net
http://www.linkedin.com/pub/michael-herndon/4/893/23
http://www.facebook.com/amptools.net
http://www.twitter.com/amptools-net

Reply via email to