Ard Schrijvers wrote:
IMO, we should index more (derived) data about a documents properties (I'll
return to this in a mail about IndexingConfiguration which I think we can add
some features that might tackle this) if we want to be able to query fast.
For this specific problem, the solution would be very simple:

I suggest to add

/** * Name of the field that contains all available properties that present
for a certain node */ public static final String PROPERTIES_SET =
"_:PROPERTIES_SET".intern();

and when indexing a node, each property name of that node is added to its
index (few lines of code in NodeIndexer):

Then, when searching for all nodes that have a property, is one single
docs.seek(terms); and set the docFilter. This approach scales to millions of
documents easily with times close to 0 ms. WDOT? Ofcourse, I can implement
this in the trunk.

I agree with you that the current implementation is not optimized for queries that check the existence of a property. Your proposed solution seems reasonable, I would implement it the same way. There's just one minor obstacle, how do we implement this change in a backward compatible way? an existing index without this additional field should still work.

regards
 marcel

Reply via email to