Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/DocumentQueue.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/DocumentQueue.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/DocumentQueue.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/DocumentQueue.java Tue Sep 25 12:24:15 2018 @@ -37,11 +37,10 @@ import com.google.common.collect.ArrayLi import com.google.common.collect.ListMultimap; import com.google.common.collect.Lists; import com.google.common.util.concurrent.Striped; - import org.apache.jackrabbit.oak.commons.PerfLogger; import org.apache.jackrabbit.oak.commons.concurrent.NotifyingFutureTask; -import org.apache.jackrabbit.oak.plugins.index.lucene.IndexNode; import org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker; +import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexNode; import org.apache.jackrabbit.oak.plugins.index.lucene.writer.LuceneIndexWriter; import org.apache.jackrabbit.oak.stats.CounterStats; import org.apache.jackrabbit.oak.stats.MeterStats; @@ -243,9 +242,9 @@ public class DocumentQueue implements Cl return; } - IndexNode indexNode = tracker.acquireIndexNode(indexPath); + LuceneIndexNode indexNode = tracker.acquireIndexNode(indexPath); if (indexNode == null) { - log.debug("No IndexNode found for index [{}].", indexPath); + log.debug("No LuceneIndexNode found for index [{}].", indexPath); return; } @@ -254,7 +253,7 @@ public class DocumentQueue implements Cl boolean docAdded = false; for (LuceneDoc doc : docs) { if (writer == null) { - //IndexDefinition per IndexNode might have changed and local + //IndexDefinition per LuceneIndexNode might have changed and local //indexing is disabled. Ignore log.debug("No local IndexWriter found for index [{}]. Skipping index " + "entry for [{}]", indexPath, doc.docPath);
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/ExternalIndexObserver.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/ExternalIndexObserver.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/ExternalIndexObserver.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/ExternalIndexObserver.java Tue Sep 25 12:24:15 2018 @@ -22,9 +22,9 @@ package org.apache.jackrabbit.oak.plugin import java.util.Set; import com.google.common.collect.Sets; -import org.apache.jackrabbit.oak.plugins.index.lucene.IndexDefinition; import org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker; import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneDocumentMaker; +import org.apache.jackrabbit.oak.plugins.index.search.IndexDefinition; import org.apache.jackrabbit.oak.plugins.observation.Filter; import org.apache.jackrabbit.oak.spi.commit.CommitContext; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LocalIndexObserver.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LocalIndexObserver.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LocalIndexObserver.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LocalIndexObserver.java Tue Sep 25 12:24:15 2018 @@ -25,11 +25,10 @@ import org.apache.jackrabbit.oak.spi.com import org.apache.jackrabbit.oak.spi.state.NodeState; import org.apache.jackrabbit.oak.stats.StatisticsProvider; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class LocalIndexObserver implements Observer{ +public class LocalIndexObserver implements Observer { private final Logger log = LoggerFactory.getLogger(getClass()); private final DocumentQueue docQueue; Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LocalIndexWriterFactory.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LocalIndexWriterFactory.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LocalIndexWriterFactory.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LocalIndexWriterFactory.java Tue Sep 25 12:24:15 2018 @@ -21,13 +21,13 @@ package org.apache.jackrabbit.oak.plugin import java.io.IOException; -import org.apache.jackrabbit.oak.plugins.index.lucene.IndexDefinition; import org.apache.jackrabbit.oak.plugins.index.lucene.writer.LuceneIndexWriter; -import org.apache.jackrabbit.oak.plugins.index.lucene.writer.LuceneIndexWriterFactory; +import org.apache.jackrabbit.oak.plugins.index.search.IndexDefinition; +import org.apache.jackrabbit.oak.plugins.index.search.spi.editor.FulltextIndexWriterFactory; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; import org.apache.lucene.index.IndexableField; -public class LocalIndexWriterFactory implements LuceneIndexWriterFactory { +public class LocalIndexWriterFactory implements FulltextIndexWriterFactory { private final LuceneDocumentHolder documentHolder; private final String indexPath; Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java Tue Sep 25 12:24:15 2018 @@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory; import static com.google.common.base.Preconditions.checkNotNull; -public class LuceneDocumentHolder implements JournalProperty{ +public class LuceneDocumentHolder implements JournalProperty { private static final Logger log = LoggerFactory.getLogger(LuceneDocumentHolder.class); public static final String NAME = "luceneDocs"; Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneJournalPropertyBuilder.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneJournalPropertyBuilder.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneJournalPropertyBuilder.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneJournalPropertyBuilder.java Tue Sep 25 12:24:15 2018 @@ -34,7 +34,7 @@ import org.jetbrains.annotations.Nullabl import org.slf4j.Logger; import org.slf4j.LoggerFactory; -class LuceneJournalPropertyBuilder implements JournalPropertyBuilder<LuceneDocumentHolder>{ +class LuceneJournalPropertyBuilder implements JournalPropertyBuilder<LuceneDocumentHolder> { private final static Logger log = LoggerFactory.getLogger(LuceneJournalPropertyBuilder.class); //Use HashMultimap to ensure that indexPath is not duplicated per node path private final Multimap<String, String> indexedNodes = HashMultimap.create(); Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTDirectoryFactory.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTDirectoryFactory.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTDirectoryFactory.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTDirectoryFactory.java Tue Sep 25 12:24:15 2018 @@ -22,7 +22,7 @@ package org.apache.jackrabbit.oak.plugin import java.io.File; import java.io.IOException; -import org.apache.jackrabbit.oak.plugins.index.lucene.IndexDefinition; +import org.apache.jackrabbit.oak.plugins.index.search.IndexDefinition; import org.apache.lucene.store.Directory; interface NRTDirectoryFactory { Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java Tue Sep 25 12:24:15 2018 @@ -31,10 +31,12 @@ import com.google.common.collect.Immutab import com.google.common.collect.Lists; import org.apache.commons.io.FileUtils; import org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier; -import org.apache.jackrabbit.oak.plugins.index.lucene.IndexDefinition; +import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexDefinition; import org.apache.jackrabbit.oak.plugins.index.lucene.reader.LuceneIndexReader; import org.apache.jackrabbit.oak.plugins.index.lucene.writer.IndexWriterUtils; import org.apache.jackrabbit.oak.plugins.index.lucene.writer.LuceneIndexWriter; +import org.apache.jackrabbit.oak.plugins.index.search.update.IndexUpdateListener; +import org.apache.jackrabbit.oak.plugins.index.search.update.ReaderRefreshPolicy; import org.apache.jackrabbit.oak.stats.HistogramStats; import org.apache.jackrabbit.oak.stats.MeterStats; import org.apache.jackrabbit.oak.stats.StatisticsProvider; @@ -65,7 +67,7 @@ public class NRTIndex implements Closeab */ public static final String NRT_DIR_PREFIX = "nrt-"; - private final IndexDefinition definition; + private final LuceneIndexDefinition definition; private final IndexCopier indexCopier; private final IndexUpdateListener refreshPolicy; @@ -90,7 +92,7 @@ public class NRTIndex implements Closeab private final boolean assertAllReadersClosed; - public NRTIndex(IndexDefinition definition, IndexCopier indexCopier, + public NRTIndex(LuceneIndexDefinition definition, IndexCopier indexCopier, IndexUpdateListener refreshPolicy, @Nullable NRTIndex previous, StatisticsProvider statisticsProvider, NRTDirectoryFactory directoryFactory, boolean assertAllReadersClosed) { Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndexFactory.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndexFactory.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndexFactory.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndexFactory.java Tue Sep 25 12:24:15 2018 @@ -28,7 +28,11 @@ import java.util.concurrent.TimeUnit; import com.google.common.collect.LinkedListMultimap; import com.google.common.collect.ListMultimap; import org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier; -import org.apache.jackrabbit.oak.plugins.index.lucene.IndexDefinition; +import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexDefinition; +import org.apache.jackrabbit.oak.plugins.index.search.IndexDefinition; +import org.apache.jackrabbit.oak.plugins.index.search.update.IndexUpdateListener; +import org.apache.jackrabbit.oak.plugins.index.search.update.RefreshOnWritePolicy; +import org.apache.jackrabbit.oak.plugins.index.search.update.TimedRefreshPolicy; import org.apache.jackrabbit.oak.stats.Clock; import org.apache.jackrabbit.oak.stats.StatisticsProvider; import org.apache.lucene.store.Directory; @@ -44,8 +48,8 @@ import static com.google.common.base.Pre public class NRTIndexFactory implements Closeable{ /** * Maximum numbers of NRTIndex to keep at a time. At runtime for a given index - * /oak:index/fooIndex at max 2 IndexNode would be opened at a time and those 2 - * IndexNode would keep reference to at max 3 NRT Indexes + * /oak:index/fooIndex at max 2 LuceneIndexNode would be opened at a time and those 2 + * LuceneIndexNode would keep reference to at max 3 NRT Indexes */ private static final int MAX_INDEX_COUNT = 3; private static final int REFRESH_DELTA_IN_SECS = Integer.getInteger("oak.lucene.refreshDeltaSecs", 1); @@ -74,7 +78,7 @@ public class NRTIndexFactory implements //This would not be invoked concurrently // but still mark it synchronized for safety @Nullable - public synchronized NRTIndex createIndex(IndexDefinition definition) { + public synchronized NRTIndex createIndex(LuceneIndexDefinition definition) { if (!(definition.isNRTIndexingEnabled() || definition.isSyncIndexingEnabled())){ return null; } Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/BucketSwitcher.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/BucketSwitcher.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/BucketSwitcher.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/BucketSwitcher.java Tue Sep 25 12:24:15 2018 @@ -22,13 +22,12 @@ package org.apache.jackrabbit.oak.plugin import java.util.Objects; import com.google.common.collect.Iterables; -import com.google.common.primitives.Ints; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; -import static org.apache.jackrabbit.oak.plugins.index.lucene.property.HybridPropertyIndexUtil.PROP_HEAD_BUCKET; import static org.apache.jackrabbit.oak.plugins.index.lucene.property.HybridPropertyIndexUtil.PROP_ASYNC_INDEXED_TO_TIME_AT_SWITCH; +import static org.apache.jackrabbit.oak.plugins.index.lucene.property.HybridPropertyIndexUtil.PROP_HEAD_BUCKET; import static org.apache.jackrabbit.oak.plugins.index.lucene.property.HybridPropertyIndexUtil.PROP_PREVIOUS_BUCKET; /** Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexLookup.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexLookup.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexLookup.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/HybridPropertyIndexLookup.java Tue Sep 25 12:24:15 2018 @@ -114,13 +114,13 @@ public class HybridPropertyIndexLookup { } private static Iterable<String> queryUnique(Filter filter, String indexName, NodeState propIndexRootNode, - String propIdxNodeName, Set<String> values) { + String propIdxNodeName, Set<String> values) { UniqueEntryStoreStrategy s = new UniqueEntryStoreStrategy(propIdxNodeName); return s.query(filter, indexName, propIndexRootNode, values); } private Iterable<String> querySimple(Filter filter, String indexName, NodeState propIndexNode, - Set<String> values) { + Set<String> values) { return Iterables.concat( queryBucket(filter, indexName, propIndexNode, PROP_HEAD_BUCKET, values), queryBucket(filter, indexName, propIndexNode, PROP_PREVIOUS_BUCKET, values) Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/LuceneIndexPropertyQuery.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/LuceneIndexPropertyQuery.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/LuceneIndexPropertyQuery.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/LuceneIndexPropertyQuery.java Tue Sep 25 12:24:15 2018 @@ -23,8 +23,8 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import org.apache.jackrabbit.oak.plugins.index.lucene.IndexNode; import org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker; +import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexNode; import org.apache.jackrabbit.oak.plugins.index.lucene.util.PathStoredFieldVisitor; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.Term; @@ -50,7 +50,7 @@ public class LuceneIndexPropertyQuery im @Override public Iterable<String> getIndexedPaths(String propertyRelativePath, String value) { List<String> indexPaths = new ArrayList<>(2); - IndexNode indexNode = tracker.acquireIndexNode(indexPath); + LuceneIndexNode indexNode = tracker.acquireIndexNode(indexPath); if (indexNode != null) { try { TermQuery query = new TermQuery(new Term(propertyRelativePath, value)); Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/PropertyIndexUpdateCallback.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/PropertyIndexUpdateCallback.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/PropertyIndexUpdateCallback.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/PropertyIndexUpdateCallback.java Tue Sep 25 12:24:15 2018 @@ -27,11 +27,11 @@ import javax.jcr.PropertyType; import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.plugins.index.IndexConstants; -import org.apache.jackrabbit.oak.plugins.index.lucene.PropertyDefinition; -import org.apache.jackrabbit.oak.plugins.index.lucene.PropertyUpdateCallback; import org.apache.jackrabbit.oak.plugins.index.property.ValuePattern; import org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy; import org.apache.jackrabbit.oak.plugins.index.property.strategy.UniqueEntryStoreStrategy; +import org.apache.jackrabbit.oak.plugins.index.search.PropertyDefinition; +import org.apache.jackrabbit.oak.plugins.index.search.PropertyUpdateCallback; import org.apache.jackrabbit.oak.plugins.memory.PropertyValues; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; import org.apache.jackrabbit.oak.spi.state.NodeState; @@ -75,7 +75,7 @@ public class PropertyIndexUpdateCallback @Override public void propertyUpdated(String nodePath, String propertyRelativePath, PropertyDefinition pd, - @Nullable PropertyState before, @Nullable PropertyState after) { + @Nullable PropertyState before, @Nullable PropertyState after) { if (!pd.sync) { return; } Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/reader/DefaultIndexReaderFactory.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/reader/DefaultIndexReaderFactory.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/reader/DefaultIndexReaderFactory.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/reader/DefaultIndexReaderFactory.java Tue Sep 25 12:24:15 2018 @@ -26,9 +26,10 @@ import java.util.List; import com.google.common.collect.ImmutableList; import org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier; -import org.apache.jackrabbit.oak.plugins.index.lucene.IndexDefinition; +import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexDefinition; import org.apache.jackrabbit.oak.plugins.index.lucene.directory.OakDirectory; import org.apache.jackrabbit.oak.plugins.index.lucene.writer.MultiplexersLucene; +import org.apache.jackrabbit.oak.plugins.index.search.FulltextIndexConstants; import org.apache.jackrabbit.oak.spi.mount.Mount; import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider; import org.apache.jackrabbit.oak.spi.state.NodeState; @@ -37,10 +38,6 @@ import org.apache.lucene.store.Directory import org.apache.lucene.store.FSDirectory; import org.jetbrains.annotations.Nullable; -import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.INDEX_DATA_CHILD_NAME; -import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.PERSISTENCE_FILE; -import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.PERSISTENCE_NAME; -import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.PERSISTENCE_PATH; import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.SUGGEST_DATA_CHILD_NAME; public class DefaultIndexReaderFactory implements LuceneIndexReaderFactory { @@ -53,18 +50,18 @@ public class DefaultIndexReaderFactory i } @Override - public List<LuceneIndexReader> createReaders(IndexDefinition definition, NodeState defnState, + public List<LuceneIndexReader> createReaders(LuceneIndexDefinition definition, NodeState defnState, String indexPath) throws IOException { if (!mountInfoProvider.hasNonDefaultMounts()) { LuceneIndexReader reader = createReader(definition, defnState, indexPath, - INDEX_DATA_CHILD_NAME, SUGGEST_DATA_CHILD_NAME); + FulltextIndexConstants.INDEX_DATA_CHILD_NAME, SUGGEST_DATA_CHILD_NAME); return reader != null ? ImmutableList.of(reader) : Collections.<LuceneIndexReader>emptyList(); } else { return createMountedReaders(definition, defnState, indexPath); } } - private List<LuceneIndexReader> createMountedReaders(IndexDefinition definition, NodeState defnState, String + private List<LuceneIndexReader> createMountedReaders(LuceneIndexDefinition definition, NodeState defnState, String indexPath) throws IOException { ImmutableList.Builder<LuceneIndexReader> readers = ImmutableList.builder(); LuceneIndexReader reader = createReader(mountInfoProvider.getDefaultMount(), definition, defnState, indexPath); @@ -83,14 +80,14 @@ public class DefaultIndexReaderFactory i } @Nullable - private LuceneIndexReader createReader(Mount mount, IndexDefinition definition, NodeState defnNodeState, + private LuceneIndexReader createReader(Mount mount, LuceneIndexDefinition definition, NodeState defnNodeState, String indexPath) throws IOException { return createReader(definition, defnNodeState, indexPath, MultiplexersLucene.getIndexDirName(mount), MultiplexersLucene.getSuggestDirName(mount)); } @Nullable - private LuceneIndexReader createReader(IndexDefinition definition, NodeState defnNodeState, String indexPath, + private LuceneIndexReader createReader(LuceneIndexDefinition definition, NodeState defnNodeState, String indexPath, String indexDataNodeName, String suggestDataNodeName) throws IOException { Directory directory = null; NodeState data = defnNodeState.getChildNode(indexDataNodeName); @@ -99,8 +96,9 @@ public class DefaultIndexReaderFactory i if (cloner != null) { directory = cloner.wrapForRead(indexPath, definition, directory, indexDataNodeName); } - } else if (PERSISTENCE_FILE.equalsIgnoreCase(defnNodeState.getString(PERSISTENCE_NAME))) { - String path = defnNodeState.getString(PERSISTENCE_PATH); + } else if (FulltextIndexConstants.PERSISTENCE_FILE.equalsIgnoreCase( + defnNodeState.getString(FulltextIndexConstants.PERSISTENCE_NAME))) { + String path = defnNodeState.getString(FulltextIndexConstants.PERSISTENCE_PATH); if (path != null && new File(path).exists()) { directory = FSDirectory.open(new File(path)); } Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/reader/LuceneIndexReaderFactory.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/reader/LuceneIndexReaderFactory.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/reader/LuceneIndexReaderFactory.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/reader/LuceneIndexReaderFactory.java Tue Sep 25 12:24:15 2018 @@ -22,10 +22,10 @@ package org.apache.jackrabbit.oak.plugin import java.io.IOException; import java.util.List; -import org.apache.jackrabbit.oak.plugins.index.lucene.IndexDefinition; +import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexDefinition; import org.apache.jackrabbit.oak.spi.state.NodeState; public interface LuceneIndexReaderFactory { - List<LuceneIndexReader> createReaders(IndexDefinition definition, NodeState definitionState, String indexPath) throws IOException; + List<LuceneIndexReader> createReaders(LuceneIndexDefinition definition, NodeState definitionState, String indexPath) throws IOException; } Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/CRTokenizer.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/CRTokenizer.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/CRTokenizer.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/CRTokenizer.java Tue Sep 25 12:24:15 2018 @@ -24,7 +24,7 @@ import org.apache.lucene.analysis.util.C import org.apache.lucene.util.Version; /** - * A {@link org.apache.lucene.analysis.util.CharTokenizer} dividing tokens at <code>\n</code>. + * A {@link CharTokenizer} dividing tokens at <code>\n</code>. * * This should be deprecated if / once LUCENE-5833 fix gets included in the Lucene version we ship. */ Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/CompoundWordTokenFilterBase.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/CompoundWordTokenFilterBase.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/CompoundWordTokenFilterBase.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/CompoundWordTokenFilterBase.java Tue Sep 25 12:24:15 2018 @@ -25,7 +25,6 @@ import org.apache.lucene.analysis.tokena import org.apache.lucene.analysis.tokenattributes.OffsetAttribute; import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute; import org.apache.lucene.analysis.util.CharArraySet; -import org.apache.lucene.util.AttributeSource; import org.apache.lucene.util.Version; /** @@ -68,7 +67,7 @@ public abstract class CompoundWordTokenF protected final OffsetAttribute offsetAtt = addAttribute(OffsetAttribute.class); private final PositionIncrementAttribute posIncAtt = addAttribute(PositionIncrementAttribute.class); - private AttributeSource.State current; + private State current; protected CompoundWordTokenFilterBase(Version matchVersion, TokenStream input, CharArraySet dictionary, boolean onlyLongestMatch) { this(matchVersion, input,dictionary,DEFAULT_MIN_WORD_SIZE,DEFAULT_MIN_SUBWORD_SIZE,DEFAULT_MAX_SUBWORD_SIZE, onlyLongestMatch); Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/ConfigUtil.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/ConfigUtil.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/ConfigUtil.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/ConfigUtil.java Tue Sep 25 12:24:15 2018 @@ -19,61 +19,5 @@ package org.apache.jackrabbit.oak.plugins.index.lucene.util; -import java.util.Collections; - -import com.google.common.primitives.Ints; -import org.apache.jackrabbit.JcrConstants; -import org.apache.jackrabbit.oak.api.Blob; -import org.apache.jackrabbit.oak.api.PropertyState; -import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.spi.state.NodeState; - -import static com.google.common.base.Preconditions.checkArgument; - -public class ConfigUtil { - - public static boolean getOptionalValue(NodeState definition, String propName, boolean defaultVal){ - PropertyState ps = definition.getProperty(propName); - return ps == null ? defaultVal : ps.getValue(Type.BOOLEAN); - } - - public static int getOptionalValue(NodeState definition, String propName, int defaultVal){ - PropertyState ps = definition.getProperty(propName); - return ps == null ? defaultVal : Ints.checkedCast(ps.getValue(Type.LONG)); - } - - public static String getOptionalValue(NodeState definition, String propName, String defaultVal){ - PropertyState ps = definition.getProperty(propName); - return ps == null ? defaultVal : ps.getValue(Type.STRING); - } - - public static float getOptionalValue(NodeState definition, String propName, float defaultVal){ - PropertyState ps = definition.getProperty(propName); - return ps == null ? defaultVal : ps.getValue(Type.DOUBLE).floatValue(); - } - - public static double getOptionalValue(NodeState definition, String propName, double defaultVal){ - PropertyState ps = definition.getProperty(propName); - return ps == null ? defaultVal : ps.getValue(Type.DOUBLE); - } - - public static String getPrimaryTypeName(NodeState nodeState) { - PropertyState ps = nodeState.getProperty(JcrConstants.JCR_PRIMARYTYPE); - return (ps == null) ? JcrConstants.NT_BASE : ps.getValue(Type.NAME); - } - - public static Iterable<String> getMixinNames(NodeState nodeState) { - PropertyState ps = nodeState.getProperty(JcrConstants.JCR_MIXINTYPES); - return (ps == null) ? Collections.<String>emptyList() : ps.getValue(Type.NAMES); - } - - /** - * Assumes that given state is of type nt:file and then reads - * the jcr:content/@jcr:data property to get the binary content - */ - public static Blob getBlob(NodeState state, String resourceName){ - NodeState contentNode = state.getChildNode(JcrConstants.JCR_CONTENT); - checkArgument(contentNode.exists(), "Was expecting to find jcr:content node to read resource %s", resourceName); - return contentNode.getProperty(JcrConstants.JCR_DATA).getValue(Type.BINARY); - } +public class ConfigUtil extends org.apache.jackrabbit.oak.plugins.index.search.util.ConfigUtil { } Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/FacetHelper.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/FacetHelper.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/FacetHelper.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/FacetHelper.java Tue Sep 25 12:24:15 2018 @@ -23,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.apache.jackrabbit.oak.plugins.index.lucene.FieldNames; +import org.apache.jackrabbit.oak.plugins.index.search.FieldNames; import org.apache.jackrabbit.oak.spi.query.QueryConstants; import org.apache.jackrabbit.oak.spi.query.QueryIndex; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; @@ -87,7 +87,6 @@ public class FacetHelper { return facets; } - public static String parseFacetField(String columnName) { return columnName.substring(QueryConstants.REP_FACET.length() + 1, columnName.length() - 1); } Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/FilteredSortedSetDocValuesFacetCounts.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/FilteredSortedSetDocValuesFacetCounts.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/FilteredSortedSetDocValuesFacetCounts.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/FilteredSortedSetDocValuesFacetCounts.java Tue Sep 25 12:24:15 2018 @@ -22,7 +22,7 @@ import java.io.IOException; import java.util.HashMap; import java.util.Map; -import org.apache.jackrabbit.oak.plugins.index.lucene.FieldNames; +import org.apache.jackrabbit.oak.plugins.index.search.FieldNames; import org.apache.jackrabbit.oak.spi.query.Filter; import org.apache.lucene.document.Document; import org.apache.lucene.facet.FacetResult; Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/FunctionIndexProcessor.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/FunctionIndexProcessor.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/FunctionIndexProcessor.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/FunctionIndexProcessor.java Tue Sep 25 12:24:15 2018 @@ -18,262 +18,13 @@ */ package org.apache.jackrabbit.oak.plugins.index.lucene.util; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Deque; - -import org.apache.jackrabbit.oak.api.PropertyState; -import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.commons.PathUtils; -import org.apache.jackrabbit.oak.plugins.memory.EmptyPropertyState; -import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; -import org.apache.jackrabbit.oak.spi.query.QueryConstants; -import org.apache.jackrabbit.oak.spi.state.NodeState; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - /** * A parser for function-based indexes. It converts the human-readable function * definition (XPath) to the internal Polish notation. */ -public class FunctionIndexProcessor { - - private static final Logger LOG = - LoggerFactory.getLogger(FunctionIndexProcessor.class); - - private String remaining; - - private static final PropertyState EMPTY_PROPERTY_STATE = EmptyPropertyState.emptyProperty("empty", Type.STRINGS); +public class FunctionIndexProcessor extends org.apache.jackrabbit.oak.plugins.index.search.util.FunctionIndexProcessor { private FunctionIndexProcessor(String function) { - this.remaining = function; - } - - /** - * Get the list of properties used in the given function code. - * - * @param functionCode the tokens, for example ["function", "lower", "@name"] - * @return the list of properties, for example ["name"] - */ - public static String[] getProperties(String[] functionCode) { - ArrayList<String> properties = new ArrayList<String>(); - for(String token : functionCode) { - if (token.startsWith("@")) { - String propertyName = token.substring(1); - properties.add(propertyName); - } - } - return properties.toArray(new String[0]); - } - - /** - * Try to calculate the value for the given function code. - * - * @param path the path of the node - * @param state the node state - * @param functionCode the tokens, for example ["function", "lower", "@name"] - * @return null, or the calculated value - */ - public static PropertyState tryCalculateValue(String path, NodeState state, String[] functionCode) { - Deque<PropertyState> stack = new ArrayDeque<PropertyState>(); - for (int i = functionCode.length - 1; i > 0; i--) { - String token = functionCode[i]; - PropertyState ps; - if (token.startsWith("@")) { - String propertyName = token.substring(1); - ps = getProperty(path, state, propertyName); - } else { - ps = calculateFunction(token, stack); - } - if (ps == null) { - ps = EMPTY_PROPERTY_STATE; - } - stack.push(ps); - } - - PropertyState ret = stack.pop(); - return ret==EMPTY_PROPERTY_STATE ? null : ret; - } - - /** - * Split the polish notation into a tokens that can more easily be processed. - * - * @param functionDescription in polish notation, for example "function*lower*{@literal @}name" - * @return tokens, for example ["function", "lower", "{@literal @}name"] - */ - public static String[] getFunctionCode(String functionDescription) { - if (functionDescription == null) { - return null; - } - return functionDescription.split("\\*"); - } - - private static PropertyState calculateFunction(String functionName, - Deque<PropertyState> stack) { - PropertyState ps = stack.pop(); - if ("coalesce".equals(functionName)) { - // coalesce (a, b) => (a != null ? a : b) - // we pop stack again to consume the second parameter - // also, if ps is EMPTY_PROPERTY_STATE, then newly popped value is to be used - PropertyState ps2 = stack.pop(); - if (ps == EMPTY_PROPERTY_STATE) { - ps = ps2; - } - } - if (ps == EMPTY_PROPERTY_STATE) { - return ps; - } - Type<?> type = null; - ArrayList<Object> values = new ArrayList<Object>(ps.count()); - for (int i = 0; i < ps.count(); i++) { - String s = ps.getValue(Type.STRING, i); - Object x; - if ("lower".equals(functionName)) { - x = s.toLowerCase(); - type = Type.STRING; - } else if ("coalesce".equals(functionName)) { - x = s; - type = Type.STRING; - } else if ("upper".equals(functionName)) { - x = s.toUpperCase(); - type = Type.STRING; - } else if ("length".equals(functionName)) { - x = (long) s.length(); - type = Type.LONG; - } else { - LOG.debug("Unknown function {}", functionName); - return null; - } - values.add(x); - } - PropertyState result; - if (values.size() == 1) { - result = PropertyStates.createProperty("value", values.get(0), type); - } else { - type = type.getArrayType(); - result = PropertyStates.createProperty("value", values, type); - } - return result; - } - - private static PropertyState getProperty(String path, NodeState state, - String propertyName) { - if (PathUtils.getDepth(propertyName) != 1) { - for(String n : PathUtils.elements(PathUtils.getParentPath(propertyName))) { - state = state.getChildNode(n); - if (!state.exists()) { - return null; - } - } - propertyName = PathUtils.getName(propertyName); - } - PropertyState ps; - if (":localname".equals(propertyName)) { - ps = PropertyStates.createProperty("value", - getLocalName(PathUtils.getName(path)), Type.STRING); - } else if (":name".equals(propertyName)) { - ps = PropertyStates.createProperty("value", - PathUtils.getName(path), Type.STRING); - } else { - ps = state.getProperty(propertyName); - } - if (ps == null || ps.count() == 0) { - return null; - } - return ps; + super(function); } - - private static String getLocalName(String name) { - int colon = name.indexOf(':'); - // TODO LOCALNAME: evaluation of local name might not be correct - return colon < 0 ? name : name.substring(colon + 1); - } - - /** - * Convert a function (in human-readable form) to the polish notation. - * - * @param function the function, for example "lower([name])" - * @return the polish notation, for example "function*lower*{@literal @}name" - */ - public static String convertToPolishNotation(String function) { - if (function == null) { - return null; - } - FunctionIndexProcessor p = new FunctionIndexProcessor(function); - return QueryConstants.FUNCTION_RESTRICTION_PREFIX + p.parse(); - } - - String parse() { - if (match("fn:local-name()") || match("localname()")) { - return "@:localname"; - } - if (match("fn:name()") || match("name()")) { - return "@:name"; - } - if (match("fn:upper-case(") || match("upper(")) { - return "upper*" + parse() + read(")"); - } - if (match("fn:lower-case(") || match("lower(")) { - return "lower*" + parse() + read(")"); - } - if (match("fn:coalesce(") || match("coalesce(")) { - return "coalesce*" + parse() + readCommaAndWhitespace() + parse() + read(")"); - } - if (match("fn:string-length(") || match("length(")) { - return "length*" + parse() + read(")"); - } - - // property name - if (match("[")) { - String prop = remaining; - int indexOfComma = remaining.indexOf(","); - if (indexOfComma > 0) { - prop = remaining.substring(0, indexOfComma); - } - prop = prop.substring(0, prop.lastIndexOf(']')); - remaining = remaining.substring(prop.length() + 1); - return property(prop.replaceAll("]]", "]")); - } else { - String prop = remaining; - int paren = remaining.indexOf(')'); - int comma = remaining.indexOf(','); - int end = comma; - if (paren >=0) { - end = (end < 0) ? paren : Math.min(end, paren); - } - if (end >= 0) { - prop = remaining.substring(0, end); - } - remaining = remaining.substring(prop.length()); - return property(prop.replaceAll("@", "")); - } - } - - String property(String p) { - return "@" + p; - } - - private String read(String string) { - match(string); - return ""; - } - - private String - readCommaAndWhitespace() { - while (match(" ")) { - } - match(","); - while (match(" ")) { - } - return "*"; - } - - private boolean match(String string) { - if (remaining.startsWith(string)) { - remaining = remaining.substring(string.length()); - return true; - } - return false; - } - } Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java Tue Sep 25 12:24:15 2018 @@ -34,6 +34,8 @@ import org.apache.jackrabbit.oak.api.Typ import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.plugins.index.IndexConstants; import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants; +import org.apache.jackrabbit.oak.plugins.index.search.FulltextIndexConstants; +import org.apache.jackrabbit.oak.plugins.index.search.util.NodeStateCopyUtils; import org.apache.jackrabbit.oak.plugins.tree.factories.TreeFactory; import org.apache.jackrabbit.oak.spi.filter.PathFilter; import org.apache.jackrabbit.oak.spi.state.EqualsDiff; @@ -46,6 +48,7 @@ import static org.apache.jackrabbit.JcrC import static org.apache.jackrabbit.JcrConstants.NT_UNSTRUCTURED; import static org.apache.jackrabbit.oak.api.Type.NAME; import static org.apache.jackrabbit.oak.api.Type.STRINGS; +import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.TYPE_LUCENE; import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE; public final class IndexDefinitionBuilder { @@ -73,15 +76,15 @@ public final class IndexDefinitionBuilde this.builder = nodeBuilder; this.initial = nodeBuilder.getNodeState(); this.tree = TreeFactory.createTree(builder); - tree.setProperty(LuceneIndexConstants.COMPAT_MODE, 2); + tree.setProperty(FulltextIndexConstants.COMPAT_MODE, 2); tree.setProperty("async", "async"); setType(); tree.setProperty(JCR_PRIMARYTYPE, "oak:QueryIndexDefinition", NAME); - indexRule = getOrCreateChild(tree, LuceneIndexConstants.INDEX_RULES); + indexRule = getOrCreateChild(tree, FulltextIndexConstants.INDEX_RULES); } public IndexDefinitionBuilder evaluatePathRestrictions(){ - tree.setProperty(LuceneIndexConstants.EVALUATE_PATH_RESTRICTION, true); + tree.setProperty(FulltextIndexConstants.EVALUATE_PATH_RESTRICTION, true); return this; } @@ -127,7 +130,7 @@ public final class IndexDefinitionBuilde } public IndexDefinitionBuilder nodeTypeIndex() { - tree.setProperty(LuceneIndexConstants.PROP_INDEX_NODE_TYPE, true); + tree.setProperty(FulltextIndexConstants.PROP_INDEX_NODE_TYPE, true); return this; } @@ -167,7 +170,7 @@ public final class IndexDefinitionBuilde private void setType() { PropertyState type = tree.getProperty(IndexConstants.TYPE_PROPERTY_NAME); if (type == null || !"disabled".equals(type.getValue(Type.STRING))) { - tree.setProperty(IndexConstants.TYPE_PROPERTY_NAME, "lucene"); + tree.setProperty(IndexConstants.TYPE_PROPERTY_NAME, TYPE_LUCENE); } } @@ -199,17 +202,17 @@ public final class IndexDefinitionBuilde } public IndexRule indexNodeName(){ - indexRule.setProperty(LuceneIndexConstants.INDEX_NODE_NAME, true); + indexRule.setProperty(FulltextIndexConstants.INDEX_NODE_NAME, true); return this; } public IndexRule includePropertyTypes(String ... types){ - indexRule.setProperty(LuceneIndexConstants.INCLUDE_PROPERTY_TYPES, asList(types), STRINGS); + indexRule.setProperty(FulltextIndexConstants.INCLUDE_PROPERTY_TYPES, asList(types), STRINGS); return this; } public IndexRule sync() { - indexRule.setProperty(LuceneIndexConstants.PROP_SYNC, true); + indexRule.setProperty(FulltextIndexConstants.PROP_SYNC, true); return this; } @@ -242,18 +245,18 @@ public final class IndexDefinitionBuilde } private void loadExisting() { - if (!indexRule.hasChild(LuceneIndexConstants.PROP_NAME)) { + if (!indexRule.hasChild(FulltextIndexConstants.PROP_NAME)) { return; } for (Tree tree : getPropsTree().getChildren()){ - if (!tree.hasProperty(LuceneIndexConstants.PROP_NAME)){ + if (!tree.hasProperty(FulltextIndexConstants.PROP_NAME)){ continue; } - String name = tree.getProperty(LuceneIndexConstants.PROP_NAME).getValue(Type.STRING); + String name = tree.getProperty(FulltextIndexConstants.PROP_NAME).getValue(Type.STRING); boolean regex = false; - if (tree.hasProperty(LuceneIndexConstants.PROP_IS_REGEX)) { - regex = tree.getProperty(LuceneIndexConstants.PROP_IS_REGEX).getValue(Type.BOOLEAN); + if (tree.hasProperty(FulltextIndexConstants.PROP_IS_REGEX)) { + regex = tree.getProperty(FulltextIndexConstants.PROP_IS_REGEX).getValue(Type.BOOLEAN); } PropertyRule pr = new PropertyRule(this, tree, name, regex); props.put(name, pr); @@ -262,7 +265,7 @@ public final class IndexDefinitionBuilde private Tree findExisting(String name) { for (Tree tree : getPropsTree().getChildren()){ - if (name.equals(tree.getProperty(LuceneIndexConstants.PROP_NAME).getValue(Type.STRING))){ + if (name.equals(tree.getProperty(FulltextIndexConstants.PROP_NAME).getValue(Type.STRING))){ return tree; } } @@ -290,7 +293,7 @@ public final class IndexDefinitionBuilde } private Tree getPropsTree() { - return getOrCreateChild(indexRule, LuceneIndexConstants.PROP_NODE); + return getOrCreateChild(indexRule, FulltextIndexConstants.PROP_NODE); } } @@ -302,20 +305,20 @@ public final class IndexDefinitionBuilde this.indexRule = indexRule; this.propTree = propTree; if (name != null) { - propTree.setProperty(LuceneIndexConstants.PROP_NAME, name); + propTree.setProperty(FulltextIndexConstants.PROP_NAME, name); } if (regex) { - propTree.setProperty(LuceneIndexConstants.PROP_IS_REGEX, true); + propTree.setProperty(FulltextIndexConstants.PROP_IS_REGEX, true); } } public PropertyRule useInExcerpt(){ - propTree.setProperty(LuceneIndexConstants.PROP_USE_IN_EXCERPT, true); + propTree.setProperty(FulltextIndexConstants.PROP_USE_IN_EXCERPT, true); return this; } public PropertyRule useInSpellcheck(){ - propTree.setProperty(LuceneIndexConstants.PROP_USE_IN_SPELLCHECK, true); + propTree.setProperty(FulltextIndexConstants.PROP_USE_IN_SPELLCHECK, true); return this; } @@ -327,63 +330,63 @@ public final class IndexDefinitionBuilde public PropertyRule type(String type){ //This would throw an IAE if type is invalid PropertyType.valueFromName(type); - propTree.setProperty(LuceneIndexConstants.PROP_TYPE, type); + propTree.setProperty(FulltextIndexConstants.PROP_TYPE, type); return this; } public PropertyRule useInSuggest(){ - propTree.setProperty(LuceneIndexConstants.PROP_USE_IN_SUGGEST, true); + propTree.setProperty(FulltextIndexConstants.PROP_USE_IN_SUGGEST, true); return this; } public PropertyRule analyzed(){ - propTree.setProperty(LuceneIndexConstants.PROP_ANALYZED, true); + propTree.setProperty(FulltextIndexConstants.PROP_ANALYZED, true); return this; } public PropertyRule nodeScopeIndex(){ - propTree.setProperty(LuceneIndexConstants.PROP_NODE_SCOPE_INDEX, true); + propTree.setProperty(FulltextIndexConstants.PROP_NODE_SCOPE_INDEX, true); return this; } public PropertyRule ordered(){ - propTree.setProperty(LuceneIndexConstants.PROP_ORDERED, true); + propTree.setProperty(FulltextIndexConstants.PROP_ORDERED, true); return this; } public PropertyRule ordered(String type){ type(type); - propTree.setProperty(LuceneIndexConstants.PROP_ORDERED, true); + propTree.setProperty(FulltextIndexConstants.PROP_ORDERED, true); return this; } public PropertyRule disable() { - propTree.setProperty(LuceneIndexConstants.PROP_INDEX, false); + propTree.setProperty(FulltextIndexConstants.PROP_INDEX, false); return this; } public PropertyRule propertyIndex(){ - propTree.setProperty(LuceneIndexConstants.PROP_PROPERTY_INDEX, true); + propTree.setProperty(FulltextIndexConstants.PROP_PROPERTY_INDEX, true); return this; } public PropertyRule nullCheckEnabled(){ - propTree.setProperty(LuceneIndexConstants.PROP_NULL_CHECK_ENABLED, true); + propTree.setProperty(FulltextIndexConstants.PROP_NULL_CHECK_ENABLED, true); return this; } public PropertyRule excludeFromAggregation(){ - propTree.setProperty(LuceneIndexConstants.PROP_EXCLUDE_FROM_AGGREGATE, true); + propTree.setProperty(FulltextIndexConstants.PROP_EXCLUDE_FROM_AGGREGATE, true); return this; } public PropertyRule notNullCheckEnabled(){ - propTree.setProperty(LuceneIndexConstants.PROP_NOT_NULL_CHECK_ENABLED, true); + propTree.setProperty(FulltextIndexConstants.PROP_NOT_NULL_CHECK_ENABLED, true); return this; } public PropertyRule weight(int weight){ - propTree.setProperty(LuceneIndexConstants.PROP_WEIGHT, weight); + propTree.setProperty(FulltextIndexConstants.PROP_WEIGHT, weight); return this; } @@ -403,17 +406,17 @@ public final class IndexDefinitionBuilde } public PropertyRule sync(){ - propTree.setProperty(LuceneIndexConstants.PROP_SYNC, true); + propTree.setProperty(FulltextIndexConstants.PROP_SYNC, true); return this; } public PropertyRule unique(){ - propTree.setProperty(LuceneIndexConstants.PROP_UNIQUE, true); + propTree.setProperty(FulltextIndexConstants.PROP_UNIQUE, true); return this; } public PropertyRule function(String fn) { - propTree.setProperty(LuceneIndexConstants.PROP_FUNCTION, fn); + propTree.setProperty(FulltextIndexConstants.PROP_FUNCTION, fn); return this; } @@ -442,7 +445,7 @@ public final class IndexDefinitionBuilde public AggregateRule aggregateRule(String type){ if (aggregatesTree == null){ - aggregatesTree = getOrCreateChild(tree, LuceneIndexConstants.AGGREGATES); + aggregatesTree = getOrCreateChild(tree, FulltextIndexConstants.AGGREGATES); } AggregateRule rule = aggRules.get(type); if (rule == null){ @@ -485,7 +488,7 @@ public final class IndexDefinitionBuilde private Tree findExisting(String includePath) { for (Tree tree : aggregate.getChildren()){ - if (includePath.equals(tree.getProperty(LuceneIndexConstants.AGG_PATH).getValue(Type.STRING))){ + if (includePath.equals(tree.getProperty(FulltextIndexConstants.AGG_PATH).getValue(Type.STRING))){ return tree; } } @@ -494,7 +497,7 @@ public final class IndexDefinitionBuilde private void loadExisting(Tree aggregate) { for (Tree tree : aggregate.getChildren()){ - if (tree.hasProperty(LuceneIndexConstants.AGG_PATH)) { + if (tree.hasProperty(FulltextIndexConstants.AGG_PATH)) { Include include = new Include(this, tree); includes.put(include.getPath(), include); } @@ -511,12 +514,12 @@ public final class IndexDefinitionBuilde } public Include path(String includePath) { - include.setProperty(LuceneIndexConstants.AGG_PATH, includePath); + include.setProperty(FulltextIndexConstants.AGG_PATH, includePath); return this; } public Include relativeNode(){ - include.setProperty(LuceneIndexConstants.AGG_RELATIVE_NODE, true); + include.setProperty(FulltextIndexConstants.AGG_RELATIVE_NODE, true); return this; } @@ -525,7 +528,7 @@ public final class IndexDefinitionBuilde } public String getPath(){ - return include.getProperty(LuceneIndexConstants.AGG_PATH).getValue(Type.STRING); + return include.getProperty(FulltextIndexConstants.AGG_PATH).getValue(Type.STRING); } } } Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneIndexHelper.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneIndexHelper.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneIndexHelper.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneIndexHelper.java Tue Sep 25 12:24:15 2018 @@ -16,56 +16,28 @@ */ package org.apache.jackrabbit.oak.plugins.index.lucene.util; +import java.util.Set; + +import org.apache.jackrabbit.oak.plugins.index.search.FulltextIndexConstants; +import org.apache.jackrabbit.oak.plugins.index.search.util.IndexHelper; +import org.apache.jackrabbit.oak.spi.state.NodeBuilder; +import org.apache.jackrabbit.oak.spi.state.NodeState; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.collect.ImmutableSet.of; -import static com.google.common.collect.Sets.newHashSet; -import static javax.jcr.PropertyType.TYPENAME_BINARY; -import static javax.jcr.PropertyType.TYPENAME_STRING; import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE; -import static org.apache.jackrabbit.JcrConstants.JCR_UUID; import static org.apache.jackrabbit.oak.api.Type.NAME; import static org.apache.jackrabbit.oak.api.Type.STRINGS; import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.ASYNC_PROPERTY_NAME; import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NODE_TYPE; import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.REINDEX_PROPERTY_NAME; import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.TYPE_PROPERTY_NAME; -import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.EXCLUDE_PROPERTY_NAMES; -import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.EXPERIMENTAL_STORAGE; -import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.INCLUDE_PROPERTY_NAMES; -import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.INCLUDE_PROPERTY_TYPES; -import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.PERSISTENCE_FILE; -import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.PERSISTENCE_NAME; -import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.PERSISTENCE_PATH; import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.TYPE_LUCENE; import static org.apache.jackrabbit.oak.plugins.memory.PropertyStates.createProperty; -import static org.apache.jackrabbit.oak.spi.security.user.UserConstants.GROUP_PROPERTY_NAMES; -import static org.apache.jackrabbit.oak.spi.security.user.UserConstants.USER_PROPERTY_NAMES; - -import java.util.Set; - -import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants; -import org.apache.jackrabbit.oak.spi.state.NodeBuilder; -import org.apache.jackrabbit.oak.spi.state.NodeState; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; public class LuceneIndexHelper { - public static final Set<String> JR_PROPERTY_INCLUDES = of(TYPENAME_STRING, - TYPENAME_BINARY); - - /** - * Nodes that represent content that shold not be tokenized (like UUIDs, - * etc) - * - */ - private final static Set<String> NOT_TOKENIZED = newHashSet(JCR_UUID); - - static { - NOT_TOKENIZED.addAll(USER_PROPERTY_NAMES); - NOT_TOKENIZED.addAll(GROUP_PROPERTY_NAMES); - } - private LuceneIndexHelper() { } @@ -99,15 +71,15 @@ public class LuceneIndexHelper { index.setProperty(ASYNC_PROPERTY_NAME, async); } if (propertyTypes != null && !propertyTypes.isEmpty()) { - index.setProperty(createProperty(INCLUDE_PROPERTY_TYPES, + index.setProperty(createProperty(FulltextIndexConstants.INCLUDE_PROPERTY_TYPES, propertyTypes, STRINGS)); } if (excludes != null && !excludes.isEmpty()) { - index.setProperty(createProperty(EXCLUDE_PROPERTY_NAMES, excludes, + index.setProperty(createProperty(FulltextIndexConstants.EXCLUDE_PROPERTY_NAMES, excludes, STRINGS)); } if (stored != null) { - index.setProperty(createProperty(EXPERIMENTAL_STORAGE, stored)); + index.setProperty(createProperty(FulltextIndexConstants.EXPERIMENTAL_STORAGE, stored)); } return index; } @@ -130,18 +102,18 @@ public class LuceneIndexHelper { index = index.child(name); index.setProperty(JCR_PRIMARYTYPE, INDEX_DEFINITIONS_NODE_TYPE, NAME) .setProperty(TYPE_PROPERTY_NAME, TYPE_LUCENE) - .setProperty(PERSISTENCE_NAME, PERSISTENCE_FILE) - .setProperty(PERSISTENCE_PATH, path) + .setProperty(FulltextIndexConstants.PERSISTENCE_NAME, FulltextIndexConstants.PERSISTENCE_FILE) + .setProperty(FulltextIndexConstants.PERSISTENCE_PATH, path) .setProperty(REINDEX_PROPERTY_NAME, true); if (async != null) { index.setProperty(ASYNC_PROPERTY_NAME, async); } if (propertyTypes != null && !propertyTypes.isEmpty()) { - index.setProperty(createProperty(INCLUDE_PROPERTY_TYPES, + index.setProperty(createProperty(FulltextIndexConstants.INCLUDE_PROPERTY_TYPES, propertyTypes, STRINGS)); } if (excludes != null && !excludes.isEmpty()) { - index.setProperty(createProperty(EXCLUDE_PROPERTY_NAMES, excludes, + index.setProperty(createProperty(FulltextIndexConstants.EXCLUDE_PROPERTY_NAMES, excludes, STRINGS)); } return index; @@ -158,8 +130,8 @@ public class LuceneIndexHelper { index.setProperty(JCR_PRIMARYTYPE, INDEX_DEFINITIONS_NODE_TYPE, NAME) .setProperty(TYPE_PROPERTY_NAME, TYPE_LUCENE) .setProperty(REINDEX_PROPERTY_NAME, true); - index.setProperty(LuceneIndexConstants.FULL_TEXT_ENABLED, false); - index.setProperty(createProperty(INCLUDE_PROPERTY_NAMES, includes, STRINGS)); + index.setProperty(FulltextIndexConstants.FULL_TEXT_ENABLED, false); + index.setProperty(createProperty(FulltextIndexConstants.INCLUDE_PROPERTY_NAMES, includes, STRINGS)); if (async != null) { index.setProperty(ASYNC_PROPERTY_NAME, async); @@ -167,15 +139,7 @@ public class LuceneIndexHelper { return index; } - /** - * Nodes that represent UUIDs and shold not be tokenized - * - */ - public static boolean skipTokenization(String name) { - return NOT_TOKENIZED.contains(name); - } - public static boolean isLuceneIndexNode(NodeState node){ - return TYPE_LUCENE.equals(node.getString(TYPE_PROPERTY_NAME)); + return IndexHelper.isIndexNodeOfType(node, TYPE_LUCENE); } } Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneInitializerHelper.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneInitializerHelper.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneInitializerHelper.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneInitializerHelper.java Tue Sep 25 12:24:15 2018 @@ -16,17 +16,18 @@ */ package org.apache.jackrabbit.oak.plugins.index.lucene.util; -import static com.google.common.base.Preconditions.checkNotNull; -import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NAME; -import static org.apache.jackrabbit.oak.plugins.index.lucene.util.LuceneIndexHelper.newLuceneIndexDefinition; -import static org.apache.jackrabbit.oak.plugins.index.lucene.util.LuceneIndexHelper.newLuceneFileIndexDefinition; - import java.util.Set; +import org.apache.jackrabbit.oak.plugins.index.search.util.IndexHelper; import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; import org.jetbrains.annotations.NotNull; +import static com.google.common.base.Preconditions.checkNotNull; +import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NAME; +import static org.apache.jackrabbit.oak.plugins.index.lucene.util.LuceneIndexHelper.newLuceneFileIndexDefinition; +import static org.apache.jackrabbit.oak.plugins.index.lucene.util.LuceneIndexHelper.newLuceneIndexDefinition; + public class LuceneInitializerHelper implements RepositoryInitializer { private final String name; @@ -42,11 +43,11 @@ public class LuceneInitializerHelper imp private Boolean storageEnabled; public LuceneInitializerHelper(String name) { - this(name, LuceneIndexHelper.JR_PROPERTY_INCLUDES, null, null, null); + this(name, IndexHelper.JR_PROPERTY_INCLUDES, null, null, null); } public LuceneInitializerHelper(String name, Boolean storageEnabled) { - this(name, LuceneIndexHelper.JR_PROPERTY_INCLUDES, null, null, storageEnabled); + this(name, IndexHelper.JR_PROPERTY_INCLUDES, null, null, storageEnabled); } public LuceneInitializerHelper(String name, Set<String> propertyTypes) { @@ -82,7 +83,7 @@ public class LuceneInitializerHelper imp /** * will set the {@code async} property to the provided value - * + * * @param async * @return */ @@ -90,7 +91,7 @@ public class LuceneInitializerHelper imp this.async = checkNotNull(async); return this; } - + @Override public void initialize(@NotNull NodeBuilder builder) { if (builder.hasChildNode(INDEX_DEFINITIONS_NAME) Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/MoreLikeThisHelper.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/MoreLikeThisHelper.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/MoreLikeThisHelper.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/MoreLikeThisHelper.java Tue Sep 25 12:24:15 2018 @@ -20,7 +20,7 @@ import java.io.StringReader; import java.util.ArrayList; import java.util.List; -import org.apache.jackrabbit.oak.plugins.index.lucene.FieldNames; +import org.apache.jackrabbit.oak.plugins.index.search.FieldNames; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.document.Document; import org.apache.lucene.index.IndexReader; Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/NodeStateCopyUtils.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/NodeStateCopyUtils.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/NodeStateCopyUtils.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/NodeStateCopyUtils.java Tue Sep 25 12:24:15 2018 @@ -19,136 +19,6 @@ package org.apache.jackrabbit.oak.plugins.index.lucene.util; -import javax.jcr.Binary; -import javax.jcr.Node; -import javax.jcr.PropertyType; -import javax.jcr.RepositoryException; -import javax.jcr.Value; -import javax.jcr.ValueFactory; +final class NodeStateCopyUtils extends org.apache.jackrabbit.oak.plugins.index.search.util.NodeStateCopyUtils { -import org.apache.jackrabbit.JcrConstants; -import org.apache.jackrabbit.commons.JcrUtils; -import org.apache.jackrabbit.oak.api.Blob; -import org.apache.jackrabbit.oak.api.PropertyState; -import org.apache.jackrabbit.oak.api.Tree; -import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.plugins.tree.factories.TreeFactory; -import org.apache.jackrabbit.oak.spi.state.NodeState; -import org.apache.jackrabbit.oak.spi.state.NodeStateUtils; - -import static com.google.common.base.Preconditions.checkNotNull; -import static org.apache.jackrabbit.oak.api.Type.NAMES; - -final class NodeStateCopyUtils { - private static final String OAK_CHILD_ORDER = ":childOrder"; - - public static void copyToTree(NodeState state, Tree tree){ - tree.setOrderableChildren(state.hasProperty(OAK_CHILD_ORDER)); - copyProps(state, tree); - - Tree src = TreeFactory.createReadOnlyTree(state); - for (Tree srcChild : src.getChildren()){ - String childName = srcChild.getName(); - Tree child = tree.addChild(childName); - copyToTree(state.getChildNode(childName), child); - } - } - - public static void copyToNode(NodeState state, Node node) throws RepositoryException { - copyProps(state, node); - - Tree src = TreeFactory.createReadOnlyTree(state); - for (Tree srcChild : src.getChildren()){ - String childName = srcChild.getName(); - - if (NodeStateUtils.isHidden(childName)){ - continue; - } - - NodeState childState = state.getChildNode(childName); - Node child = JcrUtils.getOrAddNode(node, childName, primaryType(childState)); - copyToNode(childState, child); - } - } - - private static void copyProps(NodeState state, Tree tree) { - for (PropertyState ps : state.getProperties()){ - if (!ps.getName().equals(OAK_CHILD_ORDER)){ - tree.setProperty(ps); - } - } - } - - private static void copyProps(NodeState state, Node node) throws RepositoryException { - ValueFactory vf = node.getSession().getValueFactory(); - for (PropertyState ps : state.getProperties()){ - String name = ps.getName(); - if (name.equals(JcrConstants.JCR_PRIMARYTYPE) - || name.equals(OAK_CHILD_ORDER)){ - continue; - } - - if (name.equals(JcrConstants.JCR_MIXINTYPES)){ - for (String n : ps.getValue(NAMES)) { - node.addMixin(n); - } - continue; - } - - if (NodeStateUtils.isHidden(name)){ - continue; - } - - if (ps.isArray()){ - Value[] values = new Value[ps.count()]; - for (int i = 0; i < ps.count(); i++) { - values[i] = createValue(vf, ps, i); - } - node.setProperty(name, values, ps.getType().tag()); - } else { - node.setProperty(name, createValue(vf, ps, -1), ps.getType().tag()); - } - } - } - - private static Value createValue(ValueFactory vf, PropertyState ps, int index) throws RepositoryException { - switch(ps.getType().tag()) { - case PropertyType.STRING : - return vf.createValue(getValue(ps, Type.STRING, index)); - case PropertyType.BINARY: - Blob blob = getValue(ps, Type.BINARY, index); - Binary bin = vf.createBinary(blob.getNewStream()); - return vf.createValue(bin); - case PropertyType.LONG: - return vf.createValue(getValue(ps, Type.LONG, index)); - case PropertyType.DOUBLE: - return vf.createValue(getValue(ps, Type.DOUBLE, index)); - case PropertyType.DATE: - return vf.createValue(getValue(ps, Type.DATE, index)); - case PropertyType.BOOLEAN: - return vf.createValue(getValue(ps, Type.BOOLEAN, index)); - case PropertyType.NAME: - return vf.createValue(getValue(ps, Type.NAME, index)); - case PropertyType.PATH: - return vf.createValue(getValue(ps, Type.PATH, index)); - case PropertyType.REFERENCE: - return vf.createValue(getValue(ps, Type.REFERENCE, index)); - case PropertyType.WEAKREFERENCE: - return vf.createValue(getValue(ps, Type.WEAKREFERENCE, index)); - case PropertyType.URI: - return vf.createValue(getValue(ps, Type.URI, index)); - case PropertyType.DECIMAL: - return vf.createValue(getValue(ps, Type.DECIMAL, index)); - default: - throw new IllegalStateException("Unsupported type " + ps.getType()); - } - } - - private static <T> T getValue(PropertyState ps, Type<T> type, int index){ - return index < 0 ? ps.getValue(type) : ps.getValue(type, index); - } - - private static String primaryType(NodeState state){ - return checkNotNull(state.getName(JcrConstants.JCR_PRIMARYTYPE), "jcr:primaryType not defined for %s", state); - } } Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/NodeStateFacetsConfig.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/NodeStateFacetsConfig.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/NodeStateFacetsConfig.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/NodeStateFacetsConfig.java Tue Sep 25 12:24:15 2018 @@ -21,7 +21,7 @@ package org.apache.jackrabbit.oak.plugin import org.apache.jackrabbit.JcrConstants; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.commons.PathUtils; -import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants; +import org.apache.jackrabbit.oak.plugins.index.search.FulltextIndexConstants; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; import org.apache.lucene.facet.FacetsConfig; @@ -35,7 +35,7 @@ class NodeStateFacetsConfig extends Face private final NodeBuilder nodeBuilder; NodeStateFacetsConfig(NodeBuilder nodeBuilder) { - this.nodeBuilder = nodeBuilder.child(LuceneIndexConstants.FACETS); + this.nodeBuilder = nodeBuilder.child(FulltextIndexConstants.FACETS); if (!this.nodeBuilder.hasProperty(JcrConstants.JCR_PRIMARYTYPE)) { this.nodeBuilder.setProperty(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_UNSTRUCTURED, Type.NAME); } Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/PathStoredFieldVisitor.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/PathStoredFieldVisitor.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/PathStoredFieldVisitor.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/PathStoredFieldVisitor.java Tue Sep 25 12:24:15 2018 @@ -21,11 +21,10 @@ package org.apache.jackrabbit.oak.plugin import java.io.IOException; +import org.apache.jackrabbit.oak.plugins.index.search.FieldNames; import org.apache.lucene.index.FieldInfo; import org.apache.lucene.index.StoredFieldVisitor; -import static org.apache.jackrabbit.oak.plugins.index.lucene.FieldNames.PATH; - public class PathStoredFieldVisitor extends StoredFieldVisitor { private String path; @@ -33,7 +32,7 @@ public class PathStoredFieldVisitor exte @Override public Status needsField(FieldInfo fieldInfo) throws IOException { - if (PATH.equals(fieldInfo.name)) { + if (FieldNames.PATH.equals(fieldInfo.name)) { return Status.YES; } return pathVisited ? Status.STOP : Status.NO; @@ -42,7 +41,7 @@ public class PathStoredFieldVisitor exte @Override public void stringField(FieldInfo fieldInfo, String value) throws IOException { - if (PATH.equals(fieldInfo.name)) { + if (FieldNames.PATH.equals(fieldInfo.name)) { path = value; pathVisited = true; } Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/SpellcheckHelper.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/SpellcheckHelper.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/SpellcheckHelper.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/SpellcheckHelper.java Tue Sep 25 12:24:15 2018 @@ -18,14 +18,14 @@ */ package org.apache.jackrabbit.oak.plugins.index.lucene.util; -import org.apache.jackrabbit.oak.plugins.index.lucene.FieldNames; +import org.apache.jackrabbit.oak.plugins.index.search.FieldNames; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.Term; import org.apache.lucene.search.spell.DirectSpellChecker; import org.apache.lucene.search.spell.SuggestWord; /** - * Helper class for getting spellcheck results for a given term, calling a {@link org.apache.lucene.search.spell.DirectSpellChecker} + * Helper class for getting spellcheck results for a given term, calling a {@link DirectSpellChecker} * under the hood. */ public class SpellcheckHelper { Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/SuggestHelper.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/SuggestHelper.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/SuggestHelper.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/SuggestHelper.java Tue Sep 25 12:24:15 2018 @@ -27,7 +27,7 @@ import java.util.List; import com.google.common.io.Closer; import com.google.common.io.Files; import org.apache.commons.io.FileUtils; -import org.apache.jackrabbit.oak.plugins.index.lucene.FieldNames; +import org.apache.jackrabbit.oak.plugins.index.search.FieldNames; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.index.IndexReader; import org.apache.lucene.search.spell.Dictionary; @@ -42,7 +42,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Helper class for getting suggest results for a given term, calling a {@link org.apache.lucene.search.suggest.Lookup} + * Helper class for getting suggest results for a given term, calling a {@link Lookup} * implementation under the hood. */ public class SuggestHelper { @@ -51,8 +51,8 @@ public class SuggestHelper { private static final Analyzer analyzer = new Analyzer() { @Override - protected Analyzer.TokenStreamComponents createComponents(String fieldName, Reader reader) { - return new Analyzer.TokenStreamComponents(new CRTokenizer(Version.LUCENE_47, reader)); + protected TokenStreamComponents createComponents(String fieldName, Reader reader) { + return new TokenStreamComponents(new CRTokenizer(Version.LUCENE_47, reader)); } }; Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/fv/SimSearchUtils.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/fv/SimSearchUtils.java?rev=1841926&r1=1841925&r2=1841926&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/fv/SimSearchUtils.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/fv/SimSearchUtils.java Tue Sep 25 12:24:15 2018 @@ -23,8 +23,8 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; -import org.apache.jackrabbit.oak.plugins.index.lucene.FieldNames; -import org.apache.jackrabbit.oak.plugins.index.lucene.PropertyDefinition; +import org.apache.jackrabbit.oak.plugins.index.search.FieldNames; +import org.apache.jackrabbit.oak.plugins.index.search.PropertyDefinition; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;