On Wed, Nov 28, 2012 at 12:27 AM, Trejkaz <trej...@trypticon.org> wrote:
> On Wed, Nov 28, 2012 at 2:09 AM, Robert Muir <rcm...@gmail.com> wrote: > > > > I don't understand how a filter could become invalid even though the > reader > > has not changed. > > I did state two ways in my last email, but just to re-iterate: > > (1): The filter reflects a query constructed from lines in a text > file. If some other application modifies the text file, that filter is > now invalid. > > (2): The filter reflects the results of an SQL query against a > separate database. If someone inserts a new value into that table, > then that filter is now invalid. > > Case 1 occurs for things like word lists. Case 2 occurs for things > like tags. Neither of these would ever be possible to implement purely > using Lucene, so it is a fact of life that they will become invalid > for reasons other than the reader changing. > > My point is really that lucene (especially clear in 4.0) assumes indexreaders are immutable points in time. I don't think it makes sense for us to provide any e.g. filtercaching or similar otherwise, because this is a key simplification to the design. If you depart from this, by scoring or filtering from mutable stuff outside the inverted index, things are likely going to get complicated.