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