I think this may also be useful for a reader to have richer logic as
to whether it's time to reopen. It's a way for the writer to do some
minimal communication to the readers on what changes were just
committed.
Ie we have the static IndexReader.getVersion method, that opens the
latest segments_N in the index and returns its version; we'd add
something like static IndexReader.getLatestCommitUserData which
IndexReader could consult to see if it should reopen.
In 3.0, when IndexWriter hardwires autoCommit to false, then every
commit is explicitly done by application code (vs now where merges,
optimize, may do commits as well), then the application would have
total control on what userData to put into the commit.
I think this is compelling? It's a tiny change to the index format.
Mike
markharw00d wrote:
I think this could be a generally useful feature?
+1. I could definitely use a "commitUserData" option for the same
reasons.
Thinking more on this, we may not need to modify the index format
at all for
this use-case. This is easily achieved in the current system by
adding a
dummy document which Solr can read/write -- not very elegant but it
can work
I thought about this but was uncomfortable with the idea of adding
an extra doc - some use cases that become troublesome for any
application logic are:
1) IndexReader.numDocs/IndexReader.maxDoc will give "incorrect" values
2) Any queries of the type "all documents *without* a value for
field X return the commit.userdata document.
I was toying with the idea of maintaining my own commit.userdata
file which I would manage in my framework when calling
IndexWriter.commit but this does not feel as clean as Lucene core
code holding the user data in the segments file.
Cheers
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]