Author: vmassol
Date: 2008-02-13 11:28:34 +0100 (Wed, 13 Feb 2008)
New Revision: 7567

Modified:
   
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/DocumentData.java
   
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/IndexData.java
   
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/IndexFields.java
   
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/SearchResult.java
Log:
XWIKI-2109: Can't search page titles with the Lucene plugin
Patch submitted by Petteri Karttunen


Modified: 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/DocumentData.java
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/DocumentData.java
    2008-02-13 10:26:58 UTC (rev 7566)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/DocumentData.java
    2008-02-13 10:28:34 UTC (rev 7567)
@@ -56,6 +56,8 @@
     {
         StringBuffer text = new StringBuffer(super.getFullText(doc, context));
         text.append(" ");
+        text.append(super.getDocumentTitle());
+        text.append(" ");
         text.append(doc.getContent());
 
         return text.toString();

Modified: 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/IndexData.java
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/IndexData.java
       2008-02-13 10:26:58 UTC (rev 7566)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/IndexData.java
       2008-02-13 10:28:34 UTC (rev 7567)
@@ -38,6 +38,8 @@
 {
     private static final Log LOG = LogFactory.getLog(IndexData.class);
 
+    private String documentTitle;
+    
     private String documentName;
 
     private String documentWeb;
@@ -61,7 +63,8 @@
 
     public IndexData(final XWikiDocument doc, final XWikiContext context)
     {
-        setDocumentName(doc.getName());
+       setDocumentName(doc.getName());
+        setDocumentTitle(doc.getDisplayTitle(context));
         setDocumentWeb(doc.getSpace());
         setWiki(doc.getDatabase() == null ? context.getDatabase() : 
doc.getDatabase());
         setFullName(new 
StringBuffer(wiki).append(":").append(documentWeb).append(".")
@@ -115,6 +118,10 @@
         }
 
         // stored Text fields: tokenized and indexed
+        if (documentTitle != null) {
+            luceneDoc.add(new Field(IndexFields.DOCUMENT_TITLE, documentTitle, 
Field.Store.YES,
+                Field.Index.TOKENIZED));
+        }
         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,
@@ -195,6 +202,14 @@
     }
 
     /**
+     * @param documentTitle the document title
+     */
+    public void setDocumentTitle(String documentTitle)
+    {
+        this.documentTitle = documentTitle;
+    }
+    
+    /**
      * @param documentName The documentName to set.
      */
     public void setDocumentName(String documentName)
@@ -218,6 +233,11 @@
         this.modificationDate = modificationDate;
     }
 
+    public String getDocumentTitle()
+    {
+        return documentTitle;
+    }
+    
     public String getDocumentName()
     {
         return documentName;

Modified: 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/IndexFields.java
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/IndexFields.java
     2008-02-13 10:26:58 UTC (rev 7566)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/IndexFields.java
     2008-02-13 10:28:34 UTC (rev 7567)
@@ -46,6 +46,11 @@
     public static final String DOCUMENT_WIKI = "wiki";
 
     /**
+     * Title of the document
+     */
+    public static final String DOCUMENT_TITLE = "title";
+    
+    /**
      * Name of the document
      */
     public static final String DOCUMENT_NAME = "name";

Modified: 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/SearchResult.java
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/SearchResult.java
    2008-02-13 10:26:58 UTC (rev 7566)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/SearchResult.java
    2008-02-13 10:28:34 UTC (rev 7567)
@@ -37,6 +37,8 @@
 
     private float score;
 
+    private String title;
+    
     private String name;
 
     private String wiki;
@@ -73,6 +75,7 @@
     {
         this.score = score;
         id = doc.get(IndexFields.DOCUMENT_ID);
+        title = doc.get(IndexFields.DOCUMENT_TITLE);
         name = doc.get(IndexFields.DOCUMENT_NAME);
         web = doc.get(IndexFields.DOCUMENT_WEB);
         wiki = doc.get(IndexFields.DOCUMENT_WIKI);
@@ -130,6 +133,14 @@
     }
 
     /**
+     * @return the title of the document.
+     */
+    public String getTitle()
+    {
+        return title;
+    }    
+    
+    /**
      * @return Returns the name of the document.
      */
     public String getName()

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to