private LuceneIndexCreationProfile getTwoFieldLuceneIndexCreationProfile() { return new LuceneIndexCreationProfile(INDEX_NAME, REGION_NAME, new String[] {"field1", "field2"}, new StandardAnalyzer(), null, null); }
private LuceneIndexCreationProfile getOneFieldLuceneIndexCreationProfile() { return new LuceneIndexCreationProfile(INDEX_NAME, REGION_NAME, new String[] {"field1"}, new StandardAnalyzer(), null, null); }
private LuceneIndexCreationProfile getDefaultSerializerCreationProfile() { return new LuceneIndexCreationProfile(INDEX_NAME, REGION_NAME, new String[] {"field1"}, new StandardAnalyzer(), null, null); }
private LuceneIndexCreationProfile getReverseFieldsLuceneIndexCreationProfile() { return new LuceneIndexCreationProfile(INDEX_NAME, REGION_NAME, new String[] {"field2", "field1"}, new StandardAnalyzer(), null, null); }
private LuceneIndexCreationProfile getOneAnalyzerLuceneIndexCreationProfile(Analyzer analyzer) { Map<String, Analyzer> fieldAnalyzers = new HashMap<>(); fieldAnalyzers.put("field1", analyzer); return new LuceneIndexCreationProfile(INDEX_NAME, REGION_NAME, new String[] {"field1", "field2"}, getPerFieldAnalyzerWrapper(fieldAnalyzers), fieldAnalyzers, null); }
private LuceneIndexCreationProfile getNullField1AnalyzerLuceneIndexCreationProfile() { Map<String, Analyzer> fieldAnalyzers = new HashMap<>(); fieldAnalyzers.put("field1", null); fieldAnalyzers.put("field2", new KeywordAnalyzer()); return new LuceneIndexCreationProfile(INDEX_NAME, REGION_NAME, new String[] {"field1", "field2"}, getPerFieldAnalyzerWrapper(fieldAnalyzers), fieldAnalyzers, null); }
private LuceneIndexCreationProfile getNullField2AnalyzerLuceneIndexCreationProfile() { Map<String, Analyzer> fieldAnalyzers = new HashMap<>(); fieldAnalyzers.put("field1", new KeywordAnalyzer()); fieldAnalyzers.put("field2", null); return new LuceneIndexCreationProfile(INDEX_NAME, REGION_NAME, new String[] {"field1", "field2"}, getPerFieldAnalyzerWrapper(fieldAnalyzers), fieldAnalyzers, null); }
private LuceneIndexCreationProfile getHeterogeneousLuceneSerializerCreationProfile() { return new LuceneIndexCreationProfile(INDEX_NAME, REGION_NAME, new String[] {"field1"}, new StandardAnalyzer(), null, new HeterogeneousLuceneSerializer()); }
private LuceneIndexCreationProfile getDummySerializerCreationProfile() { return new LuceneIndexCreationProfile(INDEX_NAME, REGION_NAME, new String[] {"field1"}, new StandardAnalyzer(), null, new DummyLuceneSerializer()); }
private LuceneIndexCreationProfile getTwoAnalyzersLuceneIndexCreationProfile() { Map<String, Analyzer> fieldAnalyzers = new HashMap<>(); fieldAnalyzers.put("field1", new KeywordAnalyzer()); fieldAnalyzers.put("field2", new KeywordAnalyzer()); return new LuceneIndexCreationProfile(INDEX_NAME, REGION_NAME, new String[] {"field1", "field2"}, getPerFieldAnalyzerWrapper(fieldAnalyzers), fieldAnalyzers, null); }
registerDefinedIndex(indexName, regionPath, new LuceneIndexCreationProfile(indexName, regionPath, fields, analyzer, fieldAnalyzers, serializer)); try {
@Override public RegionAttributes beforeCreate(Region parent, String regionName, RegionAttributes attrs, InternalRegionArguments internalRegionArgs) { RegionAttributes updatedRA = attrs; String path = parent == null ? "/" + regionName : parent.getFullPath() + "/" + regionName; if (path.equals(this.regionPath) && this.beforeCreateInvoked.compareAndSet(false, true)) { LuceneServiceImpl.validateRegionAttributes(attrs); String aeqId = LuceneServiceImpl.getUniqueIndexName(this.indexName, this.regionPath); if (!attrs.getAsyncEventQueueIds().contains(aeqId)) { AttributesFactory af = new AttributesFactory(attrs); af.addAsyncEventQueueId(aeqId); updatedRA = af.create(); } // Add index creation profile internalRegionArgs.addCacheServiceProfile(new LuceneIndexCreationProfile(this.indexName, this.regionPath, this.fields, this.analyzer, this.fieldAnalyzers, serializer)); luceneIndex = this.service.beforeDataRegionCreated(this.indexName, this.regionPath, attrs, this.analyzer, this.fieldAnalyzers, aeqId, serializer, this.fields); // Add internal async event id internalRegionArgs.addInternalAsyncEventQueueId(aeqId); } return updatedRA; }
private void createIndexOnExistingRegion(PartitionedRegion region, String indexName, String regionPath, String[] fields, Analyzer analyzer, Map<String, Analyzer> fieldAnalyzers, LuceneSerializer serializer) { validateRegionAttributes(region.getAttributes()); LuceneIndexCreationProfile luceneIndexCreationProfile = new LuceneIndexCreationProfile( indexName, regionPath, fields, analyzer, fieldAnalyzers, serializer); Runnable validateIndexProfile = getIndexValidationRunnable(region, indexName, luceneIndexCreationProfile); region.executeSynchronizedOperationOnCacheProfiles(validateIndexProfile); String aeqId = LuceneServiceImpl.getUniqueIndexName(indexName, regionPath); region.updatePRConfigWithNewGatewaySender(aeqId); LuceneIndexImpl luceneIndex = beforeDataRegionCreated(indexName, regionPath, region.getAttributes(), analyzer, fieldAnalyzers, aeqId, serializer, fields); try { afterDataRegionCreated(luceneIndex); } catch (LuceneIndexDestroyedException e) { logger.warn(String.format("Lucene index %s on region %s was destroyed while being created", indexName, regionPath)); return; } createLuceneIndexOnDataRegion(region, luceneIndex); }