Hi, Thanks. Here is another sample of the Lucene plugin (but specific to Curriki). That can help you to understand what you can do with it : http://www.curriki.org/xwiki/bin/view/Main/BrowseSearch?brsqry=mit and here is the code : http://www.curriki.org/xwiki/bin/view/Main/BrowseSearch?xpage=code jeremi On 4/19/07, Michael Guntli <[email protected]> wrote:
With RC1 lucene seems to work again, so i have costumized the existing search form from jkraemer (http://www.jkraemer.net/static/maven/xwiki/plugins/lucene-plugin/install.htm...)
But keep attention: it's just a quick&dirty example to display the results in a table ;-) As im not very familiar with velocity, the code is quite ugly! (for example i didn't find a while loop to output the number of stars for score-quality, so i did it with if, if, if..)
it still has some bugs: * if you search for a regular expression (e.g. win*), then the query for the next page will be win</strong> * non wiki-documents and non-attachments will be hidden from the results, so it could happen that you see an empty page with a link to the next results (that's because searchresults.hitcount returns all results, also the hidden ones..) * many more.. * icons are hard-coded.. (/skins/lgs/*.png)
You can get the icons for free from famfamfam: http://www.famfamfam.com/lab/icons/silk/
--------------------------- Searchform.vm: 1 Search #set($query = $request.getParameter("text")) #if(!$query) #set($query = "") #end #warning("This is the new lucene search engine.\\ If you experience any problems, try to use the default xwiki [Search>WebSearch?text=$query]..") #set($itemsPerPage = "30") #set($doRebuild = $request.getParameter("rebuild")) #if($doRebuild=="yes") #set($lucene = $xwiki.getPlugin("lucene")) #if($lucene) #set($documentCount = $lucene.rebuildIndex($xwiki,$context)) #if(${documentCount}>=0) Started index rebuild with $documentCount documents. Will take some time depending on the number of pages/attachments. #else Index rebuild failed. #end #end #else #if($xwiki.hasAdminRights()) [rebuild Index>${doc.web}.${doc.name}?rebuild=yes] #end #end
{pre} <form action="$doc.name" method="post"> <input type="text" name="text" value="$query" /> <input type="submit" value="Search"/> </form> {/pre}
#if($query != "") #set($lucene = $xwiki.getPlugin("lucene")) #if($lucene) #set($wikinames = "xwiki") #set($languages = "default,en,de") #set($firstIndex = $request.getParameter("firstIndex")) #if(!$firstIndex) #set($firstIndex = "1") #end #set($searchresults = $lucene.getSearchResults($query, $wikinames, $languages, $xwiki)) #set($results = $searchresults.getResults($firstIndex,$itemsPerPage)) #if($results.size()>0) #set($lastIndex=$searchresults.getEndIndex($firstIndex, $itemsPerPage)) #if($searchresults.hitcount==1) ##{pre} $msg.get("oneresult"):{/pre} #else ##{pre}$msg.get("results") $firstIndex - $lastIndex $msg.get("of") ${searchresults.hitcount}:{/pre}
#if($searchresults.hasPrevious($firstIndex)) [previous page>${doc.web}.${doc.name}?text=$query&firstIndex=$searchresults.getPreviousIndex($firstIndex,$itemsPerPage)] #end #if($searchresults.hasNext($firstIndex,$itemsPerPage)) [next page>${doc.web}.${doc.name}?text=$query&firstIndex=$searchresults.getNextIndex($firstIndex,$itemsPerPage)] #end #end
<table width="100%" class="grid" cellSpacing=0 cellpadding="5" border="1"> <tr> <th>Result</th> <th width="100">Date</th> <th width="150">Last Author</th> <th width="100">Score</th> </tr> #foreach($result in $results) #if($result.type=='wikipage') <tr> #if($xwiki.isVirtual()) <td align=left>[${result.wiki}:${result.web}.${result.name}]</td> #else <td align=left>[${result.web}.${result.name}]</td> #end <td>$xwiki.formatDate($result.date, "d. MMM yyyy")</td> <td>$xwiki.getUserName($result.author)</td> <td> #set($resval=$result.score*100) #if($resval>10) /xwiki/skins/lgs/16-star-hot.png #end #if($resval>25) /xwiki/skins/lgs/16-star-hot.png #end #if($resval>50) /xwiki/skins/lgs/16-star-hot.png #end #if($resval>70) /xwiki/skins/lgs/16-star-hot.png #end #if($resval>90) /xwiki/skins/lgs/16-star-hot.png #end ${resval}% </td> </tr> #elseif($result.type=='attachment') <tr> <td align=left> ${result.url} /xwiki/skins/lgs/disk.png ${result.filename} \\ Attachment of [${result.web}.${result.name}]</td> <td>$xwiki.formatDate($result.date, "d. MMM yyyy")</td> <td>$xwiki.getUserName($result.author)</td> <td> #set($resval=$result.score*100) #if($resval>10) /xwiki/skins/lgs/16-star-hot.png #end #if($resval>25) /xwiki/skins/lgs/16-star-hot.png #end #if($resval>50) /xwiki/skins/lgs/16-star-hot.png #end #if($resval>70) /xwiki/skins/lgs/16-star-hot.png #end #if($resval>90) /xwiki/skins/lgs/16-star-hot.png #end ${resval}% </td> </tr> #end </tr> #end #else $msg.get("noresults") #end </table> \\ #else lucene plugin not found #end #end -- View this message in context: http://www.nabble.com/Costumized-Lucene-Search-Page-tf3605463.html#a10073014 Sent from the XWiki- Dev mailing list archive at Nabble.com.
-- You receive this message as a subscriber of the [email protected] mailing list. To unsubscribe: mailto:[email protected] For general help: mailto:[email protected]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
-- Jeremi Joslin (http://www.jeremi.info) skype: jeremi23 - jabber: [email protected] http://www.xwiki.com - http://www.pengyou-project.info