r1573 - xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene

Jeremi Joslin jeremi at users.forge.objectweb.org
Wed Nov 15 18:11:50 CET 2006


Author: jeremi
Date: 2006-11-15 18:11:49 +0100 (Wed, 15 Nov 2006)
New Revision: 1573

Modified:
   xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/AttachmentData.java
   xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/IndexData.java
   xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/IndexUpdater.java
   xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/LucenePlugin.java
Log:
* Upgrade to Lucene 2.0

Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/AttachmentData.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/AttachmentData.java	2006-11-15 16:00:36 UTC (rev 1572)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/AttachmentData.java	2006-11-15 17:11:49 UTC (rev 1573)
@@ -84,7 +84,7 @@
     public void addDataToLuceneDocument (Document luceneDoc, XWikiDocument doc, XWikiContext context)
     {
         super.addDataToLuceneDocument (luceneDoc, doc, context);
-        if (filename != null) luceneDoc.add (Field.Keyword (IndexFields.FILENAME, filename));
+        if (filename != null) luceneDoc.add (new Field (IndexFields.FILENAME, filename, Field.Store.YES, Field.Index.TOKENIZED));
     }
 
     /**

Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/IndexData.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/IndexData.java	2006-11-15 16:00:36 UTC (rev 1572)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/IndexData.java	2006-11-15 17:11:49 UTC (rev 1573)
@@ -89,7 +89,6 @@
      * by xwiki.</li>
      * </ul>
      * @param luceneDoc
-     * @param language
      *            if not null, this controls which translated version of the
      *            content will be indexed. If null, the content in the default
      *            language will be used.
@@ -98,30 +97,30 @@
                                          XWikiContext context)
     {
         // Keyword fields: stored and indexed, but not tokenized
-        luceneDoc.add (Field.Keyword (IndexFields.DOCUMENT_ID, getId ()));
-        luceneDoc.add (Field.Keyword (IndexFields.DOCUMENT_LANGUAGE, this.language));
+        luceneDoc.add (new Field(IndexFields.DOCUMENT_ID, getId(), Field.Store.YES, Field.Index.TOKENIZED));
+        luceneDoc.add (new Field(IndexFields.DOCUMENT_LANGUAGE, this.language, Field.Store.YES, Field.Index.TOKENIZED));
         if (wiki != null && wiki.length () > 0)
-            luceneDoc.add (Field.Keyword (IndexFields.DOCUMENT_WIKI, wiki));
-        if (getType () != null) luceneDoc.add (Field.Keyword (IndexFields.DOCUMENT_TYPE, getType ()));
+            luceneDoc.add (new Field (IndexFields.DOCUMENT_WIKI, wiki, Field.Store.YES, Field.Index.TOKENIZED));
+        if (getType () != null) luceneDoc.add (new Field (IndexFields.DOCUMENT_TYPE, getType (), Field.Store.YES, Field.Index.TOKENIZED));
         if (modificationDate != null)
-            luceneDoc.add (Field.Keyword (IndexFields.DOCUMENT_DATE, IndexFields
-                    .dateToString (modificationDate)));
+            luceneDoc.add (new Field(IndexFields.DOCUMENT_DATE, IndexFields
+                    .dateToString (modificationDate), Field.Store.YES, Field.Index.NO));
         if (creationDate != null)
-            luceneDoc.add (Field.Keyword (IndexFields.DOCUMENT_CREATIONDATE, IndexFields
-                    .dateToString (creationDate)));
+            luceneDoc.add (new Field(IndexFields.DOCUMENT_CREATIONDATE, IndexFields
+                    .dateToString (creationDate), Field.Store.YES, Field.Index.NO));
 
         // stored Text fields: tokenized and indexed
-        luceneDoc.add (Field.Text (IndexFields.DOCUMENT_NAME, documentName));
-        luceneDoc.add (Field.Text (IndexFields.DOCUMENT_WEB, documentWeb));
-        if (author != null) luceneDoc.add (Field.Text (IndexFields.DOCUMENT_AUTHOR, author));
-        if (creator != null) luceneDoc.add (Field.Text (IndexFields.DOCUMENT_CREATOR, creator));
+        luceneDoc.add (new Field(IndexFields.DOCUMENT_NAME, documentName, Field.Store.YES, Field.Index.TOKENIZED));
+        luceneDoc.add (new Field(IndexFields.DOCUMENT_WEB, documentWeb, Field.Store.YES, Field.Index.TOKENIZED));
+        if (author != null) luceneDoc.add (new Field(IndexFields.DOCUMENT_AUTHOR, author, Field.Store.YES, Field.Index.TOKENIZED));
+        if (creator != null) luceneDoc.add (new Field(IndexFields.DOCUMENT_CREATOR, creator, Field.Store.YES, Field.Index.TOKENIZED));
 
         // UnStored fields: tokenized and indexed, but no reconstruction of
         // original content will be possible from the search result
         try
         {
             final String ft = getFullText (doc, context);
-            if (ft != null) luceneDoc.add (Field.UnStored (IndexFields.FULLTEXT, ft, true));
+            if (ft != null) luceneDoc.add (new Field(IndexFields.FULLTEXT, ft, Field.Store.NO, Field.Index.TOKENIZED));
         } catch (Exception e)
         {
             LOG.error ("error extracting fulltext for document " + this, e);

Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/IndexUpdater.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/IndexUpdater.java	2006-11-15 16:00:36 UTC (rev 1572)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/IndexUpdater.java	2006-11-15 17:11:49 UTC (rev 1573)
@@ -194,7 +194,7 @@
             }
             try
             {
-                reader.delete (id.intValue ());
+                reader.deleteDocument (id.intValue ());
             } catch (IOException e1)
             {
                 LOG.error ("error deleting doc " + id, e1);

Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/LucenePlugin.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/LucenePlugin.java	2006-11-15 16:00:36 UTC (rev 1572)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/net/jkraemer/xwiki/plugins/lucene/LucenePlugin.java	2006-11-15 17:11:49 UTC (rev 1573)
@@ -29,17 +29,12 @@
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.standard.StandardAnalyzer;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.queryParser.ParseException;
 import org.apache.lucene.queryParser.QueryParser;
-import org.apache.lucene.search.BooleanQuery;
-import org.apache.lucene.search.Hits;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.MultiSearcher;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.Searcher;
-import org.apache.lucene.search.TermQuery;
+import org.apache.lucene.search.*;
 
 import com.xpn.xwiki.XWikiContext;
 import com.xpn.xwiki.api.Api;
@@ -174,15 +169,17 @@
         // build a query like this: <user query string> AND <wikiNamesQuery> AND
         // <languageQuery>
         BooleanQuery bQuery = new BooleanQuery ();
-        Query parsedQuery = QueryParser.parse (query, IndexFields.FULLTEXT, analyzer);
-        bQuery.add (parsedQuery, true, false);
+        QueryParser qParser = new QueryParser(IndexFields.FULLTEXT, new StandardAnalyzer());
+        qParser.setDefaultOperator(QueryParser.Operator.AND);
+        Query parsedQuery = qParser.parse (query);
+        bQuery.add (parsedQuery, BooleanClause.Occur.MUST);
         if (virtualWikiNames != null && virtualWikiNames.length () > 0)
         {
-            bQuery.add (buildOredTermQuery (virtualWikiNames, IndexFields.DOCUMENT_WIKI), true, false);
+            bQuery.add (buildOredTermQuery (virtualWikiNames, IndexFields.DOCUMENT_WIKI), BooleanClause.Occur.MUST);
         }
         if (languages != null && languages.length () > 0)
         {
-            bQuery.add (buildOredTermQuery (languages, IndexFields.DOCUMENT_LANGUAGE), true, false);
+            bQuery.add (buildOredTermQuery (languages, IndexFields.DOCUMENT_LANGUAGE), BooleanClause.Occur.MUST);
         }
         return bQuery;
     }
@@ -202,7 +199,7 @@
             BooleanQuery orQuery = new BooleanQuery ();
             for (int i = 0; i < valueArray.length; i++)
             {
-                orQuery.add (new TermQuery (new Term (fieldname, valueArray[i].trim ())), false, false);
+                orQuery.add(new TermQuery (new Term (fieldname, valueArray[i].trim ())), BooleanClause.Occur.SHOULD);
             }
             return orQuery;
         }





More information about the Xwiki-notifications mailing list