| | |
| | | StringBuilder debugBuffer, BackendMonitor monitor) |
| | | { |
| | | LocalizableMessageBuilder debugMessage = monitor.isFilterUseEnabled() ? new LocalizableMessageBuilder() : null; |
| | | EntryIDSet results = indexQuery.evaluate(debugMessage); |
| | | StringBuilder indexNameOut = debugBuffer == null ? null : new StringBuilder(); |
| | | EntryIDSet results = indexQuery.evaluate(debugMessage, indexNameOut); |
| | | |
| | | if (debugBuffer != null) |
| | | { |
| | | debugBuffer.append("[INDEX:").append(config.getAttribute().getNameOrOID()) |
| | | .append(".").append(indexName).append("]"); |
| | | appendDebugIndexInformation(debugBuffer, indexName); |
| | | appendDebugUnindexedInformation(debugBuffer, indexNameOut); |
| | | } |
| | | |
| | | if (monitor.isFilterUseEnabled()) |
| | |
| | | } |
| | | |
| | | /** |
| | | * Appends additional traces to {@code debugsearchindex} when a filter successfully used |
| | | * an auxiliary index type during index query. |
| | | * |
| | | * @param debugBuffer the current debugsearchindex buffer |
| | | * @param indexNameOut the name of the index type |
| | | */ |
| | | private void appendDebugUnindexedInformation(StringBuilder debugBuffer, StringBuilder indexNameOut) |
| | | { |
| | | if (indexNameOut.length() > 0) |
| | | { |
| | | debugBuffer.append(newUndefinedSet().toString()); |
| | | appendDebugIndexInformation(debugBuffer, indexNameOut.toString()); |
| | | } |
| | | } |
| | | |
| | | private void appendDebugIndexInformation(final StringBuilder debugBuffer, final String infos) |
| | | { |
| | | debugBuffer.append("[INDEX:").append(config.getAttribute().getNameOrOID()).append(".").append(infos).append("]"); |
| | | } |
| | | |
| | | /** |
| | | * Retrieve the entry IDs that might match two filters that restrict a value |
| | | * to both a lower bound and an upper bound. |
| | | * |
| | |
| | | monitor.updateStats(filter, |
| | | INFO_INDEX_FILTER_MATCHING_RULE_NOT_INDEXED.get(matchRuleOID, config.getAttribute().getNameOrOID())); |
| | | } |
| | | return IndexQuery.createNullIndexQuery().evaluate(null); |
| | | return IndexQuery.createNullIndexQuery().evaluate(null, null); |
| | | } |
| | | |
| | | try |
| | | { |
| | | final IndexQuery indexQuery = rule.getAssertion(filter.getAssertionValue()).createIndexQuery(indexQueryFactory); |
| | | LocalizableMessageBuilder debugMessage = monitor.isFilterUseEnabled() ? new LocalizableMessageBuilder() : null; |
| | | StringBuilder indexNameOut = debugBuffer == null ? null : new StringBuilder(); |
| | | EntryIDSet results = indexQuery.evaluate(debugMessage, indexNameOut); |
| | | |
| | | if (debugBuffer != null) |
| | | { |
| | | debugBuffer.append("[INDEX:"); |
| | |
| | | .append(indexer.getIndexID()); |
| | | } |
| | | debugBuffer.append("]"); |
| | | appendDebugUnindexedInformation(debugBuffer, indexNameOut); |
| | | } |
| | | |
| | | final IndexQuery indexQuery = rule.getAssertion(filter.getAssertionValue()).createIndexQuery(indexQueryFactory); |
| | | LocalizableMessageBuilder debugMessage = monitor.isFilterUseEnabled() ? new LocalizableMessageBuilder() : null; |
| | | EntryIDSet results = indexQuery.evaluate(debugMessage); |
| | | if (monitor.isFilterUseEnabled()) |
| | | { |
| | | if (results.isDefined()) |
| | |
| | | catch (DecodeException e) |
| | | { |
| | | logger.traceException(e); |
| | | return IndexQuery.createNullIndexQuery().evaluate(null); |
| | | return IndexQuery.createNullIndexQuery().evaluate(null, null); |
| | | } |
| | | } |
| | | |