You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by to...@apache.org on 2018/09/25 12:24:18 UTC
svn commit: r1841926 [5/14] - in /jackrabbit/oak/trunk:
oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/
oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/util/
oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/scal...
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;