How to store indexes in mssql database
--------------------------------------

                 Key: JCR-2702
                 URL: https://issues.apache.org/jira/browse/JCR-2702
             Project: Jackrabbit Content Repository
          Issue Type: Bug
          Components: indexing
    Affects Versions: 1.6.0
         Environment: JackRabbit 1.6.0
Lucene 2.4.1
JDK 6,
Apache Tomcat 6_0_20
MS SQL SERVER 2005
            Reporter: Atul Tripathi


I am creating the jackrabbit repository programmatically instead of using xml 
configuration. I am able to store my content (datasore) and versioning  
information in MS SQL SERVER database but indexes are still being stored in 
file system even though i pass FileSystemFactory (creates 
org.apache.jackrabbit.core.fs.db.MSSqlFileSystem instance) in SearchConfig.

Below is the code snippet:

// Method to get FileSystemFactory  which creates instance of MSSqlFileSystem

FileSystemFactory  getFileSystem() {
..........................
.........................
return new FileSystemFactory() {
            public FileSystem getFileSystem() throws RepositoryException {

Properties parameters = new Properties();

parameters.put("url",getUrl());
parameters.put("user", getUserName());
parameters.put("password", getPassword());
parameters.put("schema", mssql);
parameters.put("driver", getDriver());
parameters.put("schemaObjectPrefix", "JR_");

String fileSystemClass = "org.apache.jackrabbit.core.fs.db.MSSqlFileSystem"

BeanConfig config = new BeanConfig(fileSystemClass, parameters);
FileSystem fileSystem = (FileSystem) config.newInstance();
fileSystem.init();

}
}

// Method to get SearchConfig

SearchConfig getSearchConfig(FileSystemFactory  fileSystemFactory ) {

String searchIndexClass = "org.apache.jackrabbit.core.query.lucene.SearchIndex";
Properties params = new Properties();
params.put("path", getIndexPath());
params.put("textFilterClasses", .....................);
params.put("analyzer", ....................);
params.put("queryClass", ...............);
....................
.......................

return new SearchConfig(searchIndexClass , params, fileSystemFactory );

}

void createRepository(){

FileSystemFactory   fileSystem = getFileSystem();
searchConfig = getSearchConfig(fileSystem);

RepositoryConfig repositoryConfig = new RepositoryConfig(repoPath, 
securityConfig, fileSystem, workspaceDirectory,
                null, defaultWorkspace, maxIdleTime, wsElement, 
versioningConfig, searchConfig, null, dataStoreFactory, LockMechanismFactory, 
repositoryConfigurationParser);
repositoryConfig.init();
JackrabbitRepository repository = RepositoryImpl.create(repositoryConfig);

}

Is this possible to store indexes in database using jackrabbit?

Thanks,
Atul Tripathi

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to