r674 - trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr
Author: sletellier Date: 2010-12-29 18:54:20 +0100 (Wed, 29 Dec 2010) New Revision: 674 Url: http://nuiton.org/repositories/revision/wikitty/674 Log: Add quotes to escape ':' for solr Modified: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/SolrUtil.java trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java Modified: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/SolrUtil.java =================================================================== --- trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/SolrUtil.java 2010-12-29 17:32:33 UTC (rev 673) +++ trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/SolrUtil.java 2010-12-29 17:54:20 UTC (rev 674) @@ -65,6 +65,7 @@ * Find solr document by id */ static public SolrDocument findById(SolrServer solrServer, String id) { + id = quoteForSolr(id); SolrQuery query = new SolrQuery(SOLR_ID + ":" + id); QueryResponse response; try { @@ -169,4 +170,14 @@ } return result; } + + /** + * Quote s for solr. Currently only ':' is escaped + * @param s to quote + * @return new string solr compliant + */ + static public String quoteForSolr(String s) { + String result = s.replaceAll(":", "\\\\:"); + return result; + } } Modified: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java =================================================================== --- trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2010-12-29 17:32:33 UTC (rev 673) +++ trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2010-12-29 17:54:20 UTC (rev 674) @@ -266,7 +266,9 @@ // Find all node contain is as attachment SolrQuery query = new SolrQuery(SOLR_QUERY_PARSER + WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_ATTACHMENT - + SUFFIX_WIKITTY + ":" + id); + + SUFFIX_WIKITTY + ":" + + SolrUtil.quoteForSolr(id)); + QueryResponse response = solrServer.query(query); SolrDocumentList updateDocs = response.getResults(); @@ -331,12 +333,6 @@ // init system env solr.data.dir if (config != null) { - String solrHome = config.getOption(WikittyConfig.WikittyOption - .WIKITTY_SEARCHENGINE_SOLR_HOME.getKey()); - if (solrHome != null) { - System.setProperty("solr.solr.home", solrHome); - } - // choix du storage (file or Ram) String solrDirFactoryKey = WikittyConfig.WikittyOption.WIKITTY_SEARCHENGINE_SOLR_DIRECTORY_FACTORY.getKey(); @@ -345,22 +341,16 @@ System.setProperty(solrDirFactoryKey, solrDirFactory); } - // on utilise le directory meme si on est en RAM, solr peut ecrire des fichiers :( - if (solrDirFactory != null) { + // on utilise le directory que si on est pas en Ram + if (solrDirFactory != null && !solrDirFactory.contains("RAMDirectoryFactory")) { String solrDataDirKey = WikittyConfig.WikittyOption.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); - // si on est en RAM normalement on ne devrait pas ecrire - // de fichier, si SolR veut tout de meme le faire, c'est - // que la config est mauvaise. Mais dans ce cas on aide - // pas Solr en creant les repertoires pere - if (!solrDirFactory.contains("RAMDirectoryFactory")) { - file.mkdirs(); - } } } }
participants (1)
-
sletellier@users.nuiton.org