Luca Milanesio
2015-09-09 e618eb051246e7941dc2964a5038587c9d45d1d2
src/main/java/com/gitblit/service/LuceneService.java
@@ -105,7 +105,7 @@
public class LuceneService implements Runnable {
   private static final int INDEX_VERSION = 5;
   private static final int INDEX_VERSION = 6;
   private static final String FIELD_OBJECT_TYPE = "type";
   private static final String FIELD_PATH = "path";
@@ -125,7 +125,7 @@
   private static final String CONF_ALIAS = "aliases";
   private static final String CONF_BRANCH = "branches";
   private static final Version LUCENE_VERSION = Version.LUCENE_46;
   private static final Version LUCENE_VERSION = Version.LUCENE_4_10_0;
   private final Logger logger = LoggerFactory.getLogger(LuceneService.class);
@@ -194,7 +194,7 @@
    * Synchronously indexes a repository. This may build a complete index of a
    * repository or it may update an existing index.
    *
    * @param name
    * @param displayName
    *            the name of the repository
    * @param repository
    *            the repository object
@@ -267,7 +267,7 @@
      // close all writers
      for (String writer : writers.keySet()) {
         try {
            writers.get(writer).close(true);
            writers.get(writer).close();
         } catch (Throwable t) {
            logger.error("Failed to close Lucene writer for " + writer, t);
         }
@@ -437,7 +437,7 @@
               // skip non-annotated tags
               continue;
            }
            if (!tags.containsKey(tag.getObjectId())) {
            if (!tags.containsKey(tag.getReferencedObjectId().getName())) {
               tags.put(tag.getReferencedObjectId().getName(), new ArrayList<String>());
            }
            tags.get(tag.getReferencedObjectId().getName()).add(tag.displayName);
@@ -615,7 +615,7 @@
         }
         // finished
         reader.release();
         reader.close();
         // commit all changes and reset the searcher
         config.setInt(CONF_INDEX, null, CONF_VERSION, INDEX_VERSION);
@@ -722,8 +722,8 @@
      String q = MessageFormat.format(pattern, SearchObjectType.blob.name(), branch, path);
      BooleanQuery query = new BooleanQuery();
      StandardAnalyzer analyzer = new StandardAnalyzer(LUCENE_VERSION);
      QueryParser qp = new QueryParser(LUCENE_VERSION, FIELD_SUMMARY, analyzer);
      StandardAnalyzer analyzer = new StandardAnalyzer();
      QueryParser qp = new QueryParser(FIELD_SUMMARY, analyzer);
      query.add(qp.parse(q), Occur.MUST);
      IndexWriter writer = getIndexWriter(repositoryName);
@@ -760,7 +760,7 @@
               // skip non-annotated tags
               continue;
            }
            if (!tags.containsKey(tag.getObjectId())) {
            if (!tags.containsKey(tag.getObjectId().getName())) {
               tags.put(tag.getReferencedObjectId().getName(), new ArrayList<String>());
            }
            tags.get(tag.getReferencedObjectId().getName()).add(tag.displayName);
@@ -968,14 +968,14 @@
      IndexWriter indexWriter = writers.get(repository);
      File repositoryFolder = FileKey.resolve(new File(repositoriesFolder, repository), FS.DETECTED);
      File indexFolder = new File(repositoryFolder, LUCENE_DIR);
      Directory directory = FSDirectory.open(indexFolder);
      Directory directory = FSDirectory.open(indexFolder.toPath());
      if (indexWriter == null) {
         if (!indexFolder.exists()) {
            indexFolder.mkdirs();
         }
         StandardAnalyzer analyzer = new StandardAnalyzer(LUCENE_VERSION);
         IndexWriterConfig config = new IndexWriterConfig(LUCENE_VERSION, analyzer);
         StandardAnalyzer analyzer = new StandardAnalyzer();
         IndexWriterConfig config = new IndexWriterConfig(analyzer);
         config.setOpenMode(OpenMode.CREATE_OR_APPEND);
         indexWriter = new IndexWriter(directory, config);
         writers.put(repository, indexWriter);
@@ -1028,16 +1028,16 @@
         return null;
      }
      Set<SearchResult> results = new LinkedHashSet<SearchResult>();
      StandardAnalyzer analyzer = new StandardAnalyzer(LUCENE_VERSION);
      StandardAnalyzer analyzer = new StandardAnalyzer();
      try {
         // default search checks summary and content
         BooleanQuery query = new BooleanQuery();
         QueryParser qp;
         qp = new QueryParser(LUCENE_VERSION, FIELD_SUMMARY, analyzer);
         qp = new QueryParser(FIELD_SUMMARY, analyzer);
         qp.setAllowLeadingWildcard(true);
         query.add(qp.parse(text), Occur.SHOULD);
         qp = new QueryParser(LUCENE_VERSION, FIELD_CONTENT, analyzer);
         qp = new QueryParser(FIELD_CONTENT, analyzer);
         qp.setAllowLeadingWildcard(true);
         query.add(qp.parse(text), Occur.SHOULD);
@@ -1060,7 +1060,7 @@
         Query rewrittenQuery = searcher.rewrite(query);
         logger.debug(rewrittenQuery.toString());
         TopScoreDocCollector collector = TopScoreDocCollector.create(5000, true);
         TopScoreDocCollector collector = TopScoreDocCollector.create(5000);
         searcher.search(rewrittenQuery, collector);
         int offset = Math.max(0, (page - 1) * pageSize);
         ScoreDoc[] hits = collector.topDocs(offset, pageSize).scoreDocs;
@@ -1104,6 +1104,7 @@
         content = "";
      }
      int tabLength = storedSettings.getInteger(Keys.web.tabLength, 4);
      int fragmentLength = SearchObjectType.commit == result.type ? 512 : 150;
      QueryScorer scorer = new QueryScorer(query, "content");
@@ -1126,7 +1127,7 @@
         if (fragment.length() > fragmentLength) {
            fragment = fragment.substring(0, fragmentLength) + "...";
         }
         return "<pre class=\"text\">" + StringUtils.escapeForHtml(fragment, true) + "</pre>";
         return "<pre class=\"text\">" + StringUtils.escapeForHtml(fragment, true, tabLength) + "</pre>";
      }
      // make sure we have unique fragments
@@ -1224,7 +1225,7 @@
    */
   private class MultiSourceReader extends MultiReader {
      MultiSourceReader(IndexReader [] readers) {
      MultiSourceReader(IndexReader [] readers) throws IOException {
         super(readers, false);
      }