@Test public void randomSeedWithoutOneInDef() { long seed1 = new IndexDefinition(root, root, "/foo").getSecureFacetConfiguration().getRandomSeed(); long seed2 = new IndexDefinition(root, root, "/foo").getSecureFacetConfiguration().getRandomSeed(); assertNotEquals(seed1, seed2); } }
private PropertyDefinition pd(String propName){ IndexDefinition defn = new IndexDefinition(root, defnb.build(), indexPath); return defn.getApplicableIndexingRule("nt:base").getConfig(propName); } }
@Test public void randomSeed() { long seed = new Random().nextLong(); builder.setProperty(PROP_RANDOM_SEED, seed); root = builder.getNodeState(); IndexDefinition idxDefn = new IndexDefinition(root, root, "/foo"); SecureFacetConfiguration config = idxDefn.getSecureFacetConfiguration(); assertEquals(seed, config.getRandomSeed()); }
private PropertyDefinition pd(String indexPath, String propName){ NodeState root = nodeStore.getRoot(); IndexDefinition defn = new IndexDefinition(root, getNode(root, indexPath), indexPath); return defn.getApplicableIndexingRule("nt:base").getConfig(propName); }
@Test public void defaultConfig() throws Exception{ IndexDefinition idxDefn = new IndexDefinition(root, builder.getNodeState(), "/foo"); assertFalse(idxDefn.hasSyncPropertyDefinitions()); }
@Test public void absentFacetConfigNode() { IndexDefinition idxDefn = new IndexDefinition(root, root, "/foo"); SecureFacetConfiguration config = idxDefn.getSecureFacetConfiguration(); assertEquals(MODE.SECURE, config.getMode()); }
@Test public void maxExtractLength() throws Exception{ NodeBuilder defnb = newFTIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME), "foo", "lucene", of(TYPENAME_STRING)); IndexDefinition defn = new IndexDefinition(root, defnb.getNodeState(), "/foo"); assertEquals(-IndexDefinition.DEFAULT_MAX_EXTRACT_LENGTH * IndexDefinition.DEFAULT_MAX_FIELD_LENGTH, defn.getMaxExtractLength()); defnb.child(TIKA).setProperty(FulltextIndexConstants.TIKA_MAX_EXTRACT_LENGTH, 1000); defn = new IndexDefinition(root, defnb.getNodeState(), "/foo"); assertEquals(1000, defn.getMaxExtractLength()); }
@Test(expected = IllegalStateException.class) public void nullCheckEnabledWithNtBase() throws Exception{ builder.child(PROP_NODE).child("foo").setProperty(FulltextIndexConstants.PROP_NULL_CHECK_ENABLED, true); IndexDefinition idxDefn = new IndexDefinition(root, builder.getNodeState(), "/foo"); }
@Test public void fulltextEnabledAndAggregate() throws Exception{ NodeBuilder defnb = newFTPropertyIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME), "foo", "lucene", of("foo"), "async"); IndexDefinition defn = new IndexDefinition(root, defnb.getNodeState(), "/foo"); assertFalse(defn.isFullTextEnabled()); NodeBuilder aggregates = defnb.child(FulltextIndexConstants.AGGREGATES); NodeBuilder aggFolder = aggregates.child("nt:base"); aggFolder.child("i1").setProperty(FulltextIndexConstants.AGG_PATH, "*"); defn = new IndexDefinition(root, defnb.getNodeState(), "/foo"); assertTrue(defn.isFullTextEnabled()); }
@Test public void autoFormatUpdate() throws Exception{ NodeBuilder index = builder.child(INDEX_DEFINITIONS_NAME); NodeBuilder nb = newLuceneIndexDefinitionV2(index, "lucene", of(TYPENAME_STRING)); //1. Trigger a index so that next index step does not see it as a fresh index NodeState indexed = HOOK.processCommit(EMPTY_NODE, builder.getNodeState(), CommitInfo.EMPTY); IndexDefinition defn = new IndexDefinition(root, indexed.getChildNode(INDEX_DEFINITIONS_NAME).getChildNode("lucene"), "/foo"); assertFalse(defn.isOfOldFormat()); }
@Test public void tikaConfigServiceLoader() throws Exception { IndexDefinition idxDefn = new IndexDefinition(root, builder.getNodeState(), "/foo"); FulltextBinaryTextExtractor extractor = new FulltextBinaryTextExtractor(cache, idxDefn, false); assertTrue(extractor.getTikaConfig().getServiceLoader().isDynamic()); }
@Test public void simpleAggregateConfig() throws Exception{ NodeBuilder aggregates = builder.child(FulltextIndexConstants.AGGREGATES); NodeBuilder aggFolder = aggregates.child("nt:folder"); aggFolder.child("i1").setProperty(FulltextIndexConstants.AGG_PATH, "*"); IndexDefinition defn = new IndexDefinition(root, builder.getNodeState(), "/foo"); Aggregate agg = defn.getAggregate("nt:folder"); assertNotNull(agg); assertEquals(1, agg.getIncludes().size()); }
@Test public void notNullCheckEnabledWithTestNode() throws Exception{ NodeBuilder rules = builder.child(INDEX_RULES); TestUtil.child(rules, "oak:TestNode/properties/prop2") .setProperty(PROP_NAME, "foo") .setProperty(FulltextIndexConstants.PROP_NOT_NULL_CHECK_ENABLED, true); root = registerTestNodeType(builder).getNodeState(); IndexDefinition idxDefn = new IndexDefinition(root, builder.getNodeState(), "/foo"); assertTrue(!idxDefn.getApplicableIndexingRule(TestUtil.NT_TEST).getNotNullCheckEnabledProperties().isEmpty()); }
@Test public void testSuggestDisabled() throws Exception { NodeBuilder rules = builder.child(INDEX_RULES); TestUtil.child(rules, "oak:TestNode/properties/prop2") .setProperty(PROP_NAME, "foo"); root = registerTestNodeType(builder).getNodeState(); IndexDefinition idxDefn = new IndexDefinition(root, builder.getNodeState(), "/foo"); assertFalse(idxDefn.isSuggestEnabled()); }
@Test public void indexRuleInheritanceOrdering2() throws Exception{ NodeBuilder rules = builder.child(INDEX_RULES); rules.setProperty(OAK_CHILD_ORDER, ImmutableList.of("nt:base", "nt:hierarchyNode"),NAMES); rules.child("nt:hierarchyNode").setProperty(FulltextIndexConstants.FIELD_BOOST, 2.0); rules.child("nt:base").setProperty(FulltextIndexConstants.FIELD_BOOST, 3.0); IndexDefinition defn = new IndexDefinition(root, builder.getNodeState(), "/foo"); //As nt:base is defined earlier it would supercede everything assertEquals(3.0, getRule(defn, "nt:base").boost, 0); assertEquals(3.0, getRule(defn, "nt:hierarchyNode").boost, 0); assertEquals(3.0, getRule(defn, "nt:file").boost, 0); }
@Test(expected = IllegalStateException.class) public void nullCheckEnabledWithRegex() throws Exception{ NodeBuilder rules = builder.child(INDEX_RULES); rules.child(TestUtil.NT_TEST); TestUtil.child(rules, "oak:TestNode/properties/prop2") .setProperty(PROP_NAME, ".*") .setProperty(FulltextIndexConstants.PROP_IS_REGEX, true) .setProperty(FulltextIndexConstants.PROP_NULL_CHECK_ENABLED, true); root = registerTestNodeType(builder).getNodeState(); IndexDefinition idxDefn = new IndexDefinition(root, builder.getNodeState(), "/foo"); }
@Test public void testSuggestEnabledOnNamedProp() throws Exception { NodeBuilder rules = builder.child(INDEX_RULES); TestUtil.child(rules, "oak:TestNode/properties/prop2") .setProperty(PROP_NAME, "foo") .setProperty(FulltextIndexConstants.PROP_USE_IN_SUGGEST, true); root = registerTestNodeType(builder).getNodeState(); IndexDefinition idxDefn = new IndexDefinition(root, builder.getNodeState(), "/foo"); assertTrue(idxDefn.isSuggestEnabled()); }
@Test public void propertyDefinition() throws Exception{ builder.child(PROP_NODE).child("foo").setProperty(FulltextIndexConstants.PROP_TYPE, PropertyType.TYPENAME_DATE); builder.setProperty(createProperty(INCLUDE_PROPERTY_NAMES, of("foo" , "bar"), STRINGS)); IndexDefinition idxDefn = new IndexDefinition(root, builder.getNodeState(), "/foo"); IndexDefinition.IndexingRule rule = idxDefn.getApplicableIndexingRule(NT_BASE); assertTrue(rule.isIndexed("foo")); assertTrue(rule.isIndexed("bar")); assertEquals(PropertyType.DATE, rule.getConfig("foo").getType()); }
@Test public void indexRuleMixinInheritance() throws Exception{ NodeBuilder rules = builder.child(INDEX_RULES); rules.child("mix:mimeType"); TestUtil.child(rules, "mix:mimeType/properties/jcr:mimeType") .setProperty(FulltextIndexConstants.FIELD_BOOST, 3.0); IndexDefinition defn = new IndexDefinition(root, builder.getNodeState(), "/foo"); assertNotNull(defn.getApplicableIndexingRule(asState(newNode("nt:folder", "mix:mimeType")))); assertNull(defn.getApplicableIndexingRule(asState(newNode("nt:folder")))); //nt:resource > mix:mimeType assertNotNull(defn.getApplicableIndexingRule(asState(newNode("nt:resource")))); }
@Test public void indexRuleInheritance() throws Exception{ NodeBuilder rules = builder.child(INDEX_RULES); builder.setProperty(PROP_NAME, "testIndex"); rules.child("nt:hierarchyNode").setProperty(FulltextIndexConstants.FIELD_BOOST, 2.0); IndexDefinition defn = new IndexDefinition(root, builder.getNodeState(), "/foo"); assertNull(defn.getApplicableIndexingRule(asState(newNode("nt:base")))); assertNotNull(defn.getApplicableIndexingRule(asState(newNode("nt:hierarchyNode")))); assertNotNull(defn.getApplicableIndexingRule(asState(newNode("nt:folder")))); }