r472 - in trunk: wikitty-api/src/main/java/org/nuiton/wikitty wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr wikitty-solr-impl/src/main/resources
Author: bpoussin Date: 2010-11-15 17:36:44 +0100 (Mon, 15 Nov 2010) New Revision: 472 Url: http://nuiton.org/repositories/revision/wikitty/472 Log: Evolution #1005: Create for WikittyServiceInMemory a SolR in memory instance (via configuration) Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/WikittySearchEnginSolr.java trunk/wikitty-solr-impl/src/main/resources/solrconfig.xml Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java 2010-11-10 09:06:57 UTC (rev 471) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java 2010-11-15 16:36:44 UTC (rev 472) @@ -143,10 +143,17 @@ _("JDBC xadatasource property h2 password"), "", String.class, false, false), + /* Solr config name are used directly in solr config file. If + * you change it, change too in module + * wikitty-solr-impl/src/main/resources/solrconfig.xml */ WIKITTY_SEARCHENGINE_SOLR_DIRECTORY_DATA( "wikitty.searchengine.solr.directory.data", _("Solr data directory"), "./target/data/solr", File.class, false, false), + WIKITTY_SEARCHENGINE_SOLR_DIRECTORY_FACTORY( + "wikitty.searchengine.solr.directory.factory", + _("SolR storage type possible value: solr.StandardDirectoryFactory, solr.RAMDirectoryFactory"), + "solr.StandardDirectoryFactory", String.class, false, false), WIKITTY_WIKITTYSERVICE_COMPONENTS( Modified: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/WikittySearchEnginSolr.java =================================================================== --- trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/WikittySearchEnginSolr.java 2010-11-10 09:06:57 UTC (rev 471) +++ trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/WikittySearchEnginSolr.java 2010-11-15 16:36:44 UTC (rev 472) @@ -85,9 +85,6 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ static private Log log = LogFactory.getLog(WikittySearchEnginSolr.class); - /** Solr data dir, this name are used directly by SolR, don't change it. */ - static final protected String SOLR_DATA_DIR_CONFIG = "solr.data.dir"; - /** id field in solr */ static final protected String SOLR_ID = "id"; @@ -499,14 +496,26 @@ // init system env solr.data.dir if (config != null) { - String solrDataDir = config.getOption( - WikittyConfig.Option.WIKITTY_SEARCHENGINE_SOLR_DIRECTORY_DATA.getKey()); - // make sure that dir exists - if (solrDataDir != null) { - File file = new File(solrDataDir); - file.mkdirs(); - System.setProperty(SOLR_DATA_DIR_CONFIG, solrDataDir); + // choix du storage (file or Ram) + String solrDirFactoryKey = + WikittyConfig.Option.WIKITTY_SEARCHENGINE_SOLR_DIRECTORY_FACTORY.getKey(); + String solrDirFactory = config.getOption(solrDirFactoryKey); + if (solrDirFactory != null) { + System.setProperty(solrDirFactoryKey, solrDirFactory); } + + // on utilise le directory que si on est pas en Ram + if (solrDirFactory != null && !solrDirFactory.contains("RAMDirectoryFactory")) { + String solrDataDirKey = + WikittyConfig.Option.WIKITTY_SEARCHENGINE_SOLR_DIRECTORY_DATA.getKey(); + String solrDataDir = config.getOption(solrDataDirKey); + // make sure that dir exists + if (solrDataDir != null) { + File file = new File(solrDataDir); + file.mkdirs(); + System.setProperty(solrDataDirKey, solrDataDir); + } + } } try { Modified: trunk/wikitty-solr-impl/src/main/resources/solrconfig.xml =================================================================== --- trunk/wikitty-solr-impl/src/main/resources/solrconfig.xml 2010-11-10 09:06:57 UTC (rev 471) +++ trunk/wikitty-solr-impl/src/main/resources/solrconfig.xml 2010-11-15 16:36:44 UTC (rev 472) @@ -54,8 +54,16 @@ <!-- Used to specify an alternate directory to hold all index data other than the default ./data under the Solr home. If replication is in use, this should match the replication configuration. --> - <dataDir>${solr.data.dir:./solr/data}</dataDir> + <dataDir>${wikitty.searchengine.solr.directory.data:./solr/data}</dataDir> + <!-- The DirectoryFactory to use for indexes. + solr.StandardDirectoryFactory, the default, is filesystem based. + solr.RAMDirectoryFactory is memory based, not persistent, and doesn't work with replication. + A prefix of "solr." for class names is an alias that + causes solr to search appropriate packages, including + org.apache.solr.(search|update|request|core|analysis) + --> + <directoryFactory name="DirectoryFactory" class="${wikitty.searchengine.solr.directory.factory:solr.StandardDirectoryFactory}"/> <indexDefaults> <!-- Values here affect all index writers and act as a default unless overridden. -->
participants (1)
-
bpoussin@users.nuiton.org