There’s something enticing when thinking of Lucene and Solr as independent
codebases. I’ve always thought of Lucene as core search (indexing,
analysis, tokenization, etc…) and Solr as a search experience. Lucene is
more a library (or set of libraries) used by applications providing search
experiences. Solr is just one of those applications - it provides the
experience of search as a service, and feels focused on making search
approachable and palatable to search novices.

The work I put into streaming expressions was born out of a desire to more
widely expose search functionality. The streaming API drew me in because it
exposed a new way to interact with core search functionality, and
expressions came out of wanting to make it all easy to use for end users. I
didn’t, and don’t, give a whole lot of thought to the internals of Lucene.
I like a good user experience and I see Solr as an application trying to
provide that.

I do, however, have concerns about the long-term impact of a split. Lucene
is able to set a very explicit N-1 backward compatibility policy because it
can have less immediate concern for the downstream user. And this is not to
denigrate Lucene at all - in fact I agree with that policy for core search
functionality. If and when incompatible changes lead to significant gains
they can and are made. Inefficient older ways are not brought forward
further than necessary. Solr has to be concerned with their end users, who
may be relative search novices, when considering backward incompatible
changes. More thought is given to the experience and impact of upgrades.
How are those issues dealt with across replicas and shards? What will
happen in a cloud made up of lucene indexes of varying versions? My concern
revolves around what happens if (when) Solr falls behind Lucene. Will it
ever be able to catch up? There’s an argument to be made that Solr being a
consistent N versions behind Lucene has some value to the Solr project.
But, what happens if Solr gets a slower release cadence? Will it fall
further and further behind? Will its inability to use the latest and
greatest in Lucene be the impetus for a community splitting fork? Will a
new search application come along without the legacy concerns of Solr and
become a more enticing option? Perhaps, to all of that. I can’t really say.

What I can say is I don’t think it’s appropriate to stifle the growth, or
in this case the change, of a community because of fear of the unknown.
Yes, I am worried that a project split will lead to trouble and issues for
Solr, and some of those fears are born out of how I know my company uses
Solr. But I also think a lot of good could come out of a split. It’d be
exciting to see how a Lucene community advances the state of the art of
core search, and how a Solr community provides a clean and easily
digestible search experience to end users. Will Lucene become more
embeddable? Will Solr become more plug-n-play?

I’m a fan of Christine’s suggestion of first executing a code and release
split and later, after seeing the impact of such a split, decide on a
project split. Full disclosure, Christine and I work at the same company. I
think independent codebases will in the end benefit both, though I do agree
there is more inherent and immediate risk to Solr.
- Dennis

On Fri, May 15, 2020 at 4:03 AM Dawid Weiss <dawid.we...@gmail.com> wrote:

> Hi Christine!
>
> > * After a while (perhaps with Lucene 10.0 or perhaps at some other
> natural point) we re-arrive at the "together or separate" question. If
> splitting worked well then Solr promotion to TLP could be a natural next
> step
>
> My whole point is that I think the split is by large already there:
> the mailing lists, the issues, the codebase (git constitutes common
> storage but the build system and nearly anything else pretty much
> independent with Solr consuming Lucene artifacts). I also believe the
> will to separate the projects has been with (some of) us for a long
> time and postponing this decision won't change anything.
>
> Dawid
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: dev-h...@lucene.apache.org
>
>

Reply via email to