There has been significant dicussion as to the direciton of the Lucene.Net projet.
- I want an extremely modern .NET API full of injection points where I
can pass lambdas, use IEnumerable<T> and all that System.Linq
provides, interfaces for everything, as well as excellent unit test
- I want to write very minimal code to accomplish basic tasks
- I want an average .NET developer be able to intuitively understand
and use the library with Intellisense as their only documentation
- I want performance that meets or exceeds Java Lucene
- I want no memory leaks
- I want no "surprises" in general
- I want minimal I/O
- I want any execution that can be deferred or optimized out to be
deferred or optimized out
- I want any data that could be large in size to be streamable
- I want no pointless unavoidable limitations on scale... and I want
to be able to horizontally distribute searching and indexing with ease
- I want every feature that Java Lucene's latest version has (and then some)
- I want the index formats to be compatible with every other "Lucene"
out there in whatever language and I want the query language to work
identically across all of them.. That is to say given query Text "X"
and index "Y" you will always get result set "Z" from every
implementation of Lucene. Because when I have to get to my data via
Python, Java, C++, Ruby or whatever, I want everything to just work.
- I want to know which clauses in my query caused the result hit and
to what degree, without having to incur a huge performance hit
- I want real-time updates without having to do a little dance and
wave my hands to get it to work
- I want to get a new major version of the library roughly once or
twice a year and I want to be very impressed by the features in the
new version. I want bug fixes rolled out on a quarterly basis (at
minimum) between those major versions.
- I want to be able to trace or step-debug the execution of a search
or indexing process and not think "WTF" constantly. Some of that code
is extremely obtuse.
- I want the query parser to be generated from a PEG grammar so that I
can easily generate one in other languages