Author: tmortagne Date: 2007-12-07 12:18:39 +0100 (Fri, 07 Dec 2007) New Revision: 6325
Modified: xwiki-products/xwiki-enterprise/trunk/wiki/src/main/resources/Main/LuceneSearch Log: XE-159: LuceneSearch page multiwiki list does not works in sub-wiki * Also add comment on the first lines of the page to be able to overload wikis where to search Modified: xwiki-products/xwiki-enterprise/trunk/wiki/src/main/resources/Main/LuceneSearch =================================================================== --- xwiki-products/xwiki-enterprise/trunk/wiki/src/main/resources/Main/LuceneSearch 2007-12-07 08:16:14 UTC (rev 6324) +++ xwiki-products/xwiki-enterprise/trunk/wiki/src/main/resources/Main/LuceneSearch 2007-12-07 11:18:39 UTC (rev 6325) @@ -12,20 +12,21 @@ <customClass></customClass> <contentAuthor>XWiki.Admin</contentAuthor> <creationDate>1186588178000</creationDate> -<date>1196157462000</date> -<contentUpdateDate>1196157462000</contentUpdateDate> -<version>1.104</version> +<date>1197025994000</date> +<contentUpdateDate>1197025994000</contentUpdateDate> +<version>22.1</version> <title></title> <template></template> <defaultTemplate></defaultTemplate> <validationScript></validationScript> <comment></comment> +<minorEdit>false</minorEdit> <attachment> <filename>previous.png</filename> <filesize>389</filesize> <author>XWiki.Admin</author> -<date>1195305646000</date> -<version>1.3</version> +<date>1196849577000</date> +<version>1.4</version> <comment></comment> <content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEXSURBVDjLY/j//z8DJZiBLgZkz37Ynjrz4ReyDEideb89afrDf5ET7v4n2YCEqXf7qpY9/T9r76v/Xu03STMgasLteaVLHv+fufvl/6k7X/y3qrlCvAHBvTeXFC54ANbctv7p/95Nz/5rFZ0nzoCAzpuPsuc++D91x4v/jasf/y9aeP9/89rH/6VTTxJngGPDtc3xU+/879789H/5kgf/02fd+V+17OF/yZhjxBmgVXCaRT3v7BqP1mv/a1Y+/J824/b/woX3/osHHSAtECVjjqy0Lb/wP2/+3f+Zs+/8F3XfS3o0inntXWSeffJ/0tRb/0Ucdv4nKyEJW25ZYBh/5L+w5fb/ZCdlQYMNs4WMt/wfuMyEDwMA0Irn/pDRT58AAAAASUVORK5CYII=</content> </attachment> @@ -33,8 +34,8 @@ <filename>next.png</filename> <filesize>395</filesize> <author>XWiki.Admin</author> -<date>1195305646000</date> -<version>1.3</version> +<date>1196849577000</date> +<version>1.4</version> <comment></comment> <content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEdSURBVDjLY/j//z8DJZiB6gY0rH7xpW7li3YKDHj1v2bli38lix61k2VA5fJn/9eeeP+/fcOL/wlT7/aRbEDegkf/Vxx/93/xobf/S5c8/u/ecm0eSQYkTX/4f+HBN/8nbX/xf+bul/8Tp9/9r1N0dgnRBgT33QZqfPW/YdXj/42rH//v2vjkv3fHtf9SScceEWWAc8u1/xO2Pv9fsvjB//IlD4CGPPrvXH/5v2Tksc1EGWBaful/+/on/4sW3gfGxsP/9lUX/ksEH1gj6rqdhSgDlPPO/q9b8fB/5bIH/23LL/wXD9i7kqRAlEo6+b908f3/NiXn/4t57V1EcjRKRB75b1145r+o684FZCUkMb8D/0Uct88euMxEKgYA7Ojrv4CgE7EAAAAASUVORK5CYII=</content> </attachment> @@ -71,242 +72,262 @@ <tags/> </property> </object> -<content>## =================== -## Lucene search -## =================== -## Inputs : $request.text -## Outputs : $list, $isScored -## =================== -{pre} -#set ($displayUI = true) -#if ($request.xpage && $request.xpage == "rdf") - #set ($displayUI = false) -#end -## --------------- -## Title -## --------------- -#if ($displayUI) -{/pre} -1 Search -{pre} -#end -## --------------- -## Space filtering -## --------------- -#if($request.space && $request.space != "") - #set($space = $request.space) - #set($reqspace = "AND web:${space}") -#else - #set($space = "") -#end -#set($spacesText = {}) -#set($spaces = $xwiki.spaces) -#set($ok = $spacesText.put("All","")) -#foreach($space in $spaces) - #set($ok = $spacesText.put($space,$space)) -#end -## --------------- -## Space macros -## --------------- -#macro(spaceoption $space $selectspace $spacesText) - <option value="$spacesText.get($space)" #if($selectspace == $spacesText.get($space))selected="selected"#end>$space</option> -#end -#macro(spaceselect $selectspace $spaces $spacesText) - <select name="space"> - #spaceoption("All" $selectspace $spacesText) - #foreach($space in $spaces) - #spaceoption($space $selectspace $spacesText) - #end - </select> -#end -## --------------- -## Wikis filtering -## --------------- -#set($wikinametable = $request.getParameterValues("wikinames")) -#set($wikinamelist = []) -#set($wikinames = "") -#foreach($wikiname in $wikinametable) - #set($ok = $wikinamelist.add($wikiname)) - #if($wikinames != "") - #set($wikinames = $wikinames + ",") - #end - #set($wikinames = $wikinames + $wikiname) -#end -#if($xwiki.isVirtual()) - #set($allwikilist = $xwiki.searchDocuments(", BaseObject as obj, StringProperty as prop where doc.fullName=obj.name and obj.className='XWiki.XWikiServerClass' and prop.id.id=obj.id and prop.id.name='server'")) - #set($allwikinamelist = []) - #foreach($wiki in $allwikilist) - #set($ok = $allwikinamelist.add($wiki.substring(17).toLowerCase())) - #end - #if(!$allwikinamelist.contains($context.mainWikiName)) - #set($ok = $allwikinamelist.add($context.mainWikiName)) - #end - ## --------------- - ## Wikis macros - ## --------------- - #macro(wikinamesoption $wikiname $wikinamelist) - <option value="$wikiname" #if($wikinamelist.contains($wikiname))selected="selected"#end>$wikiname</option> - #end - #macro(wikinamesselect $allwikinamelist $wikinamelist) - <select name="wikinames"> - <option value="" selected="selected">All</option> - #foreach($wikiname in $allwikinamelist) - #wikinamesoption($wikiname $wikinamelist) - #end - </select> - #end -#else - #if($wikinames == "") - #set($wikinames = $context.mainWikiName) - #end -#end -## --------------- -## Query preparation -## --------------- -#set($text = $request.getParameter("text")) -#set($query = $text) -#if(!$query) - #set($query = "") -#end -#set($itemsPerPage = "30") -## --------------- -## RSS link -## --------------- -#set($utext = $xwiki.getURLEncoded($query)) -#if($space == "") - #set($url = $xwiki.getURL($doc.fullName, "view", "xpage=rdf&amp;text=${utext}" )) -#else - #set($url = $xwiki.getURL($doc.fullName, "view", "xpage=rdf&space=$space&text=${utext}")) -#end -#if ($displayUI) -<div style="float: right;"> - <a href="$url"><img src="$xwiki.getSkinFile("icons/black-rss.png")" style="border:0px" alt="rss icon" /></a> -</div> -## --------------- -## Query form -## --------------- -<form action="$doc.name" method="get"> -<div class="centered"> -Query <input type="text" name="text" value="$query" /> in space #spaceselect($space $spaces $spacesText)#if($xwiki.isVirtual()) in wikis #wikinamesselect($xwiki.sort($allwikinamelist) $wikinamelist)#end <input type="submit" value="Search"/> -</div> -</form> -#end -{/pre} -## --------------- -## Results processing -## --------------- -#if($query != "") - #set($lucene = $xwiki.getPlugin("lucene")) - #if($lucene) - ## --------------- - ## Lucene search - ## --------------- - #set($languages = "default,en,de") - #set($firstIndex = $request.getParameter("firstIndex")) - #if(!$firstIndex) - #set($firstIndex = "1") - #end - #set($searchresults = $lucene.getSearchResults("${query}$!{reqspace}", $wikinames, $languages, $xwiki)) - #set($results = $searchresults.getResults($firstIndex,$itemsPerPage)) - #if($searchresults.getHitcount()>0) - ## ----------------- - ## Results numbers - ## ----------------- - #set($lastIndex=$searchresults.getEndIndex($firstIndex, $itemsPerPage)) - #if ($displayUI) - #if($searchresults.getHitcount()==1) - One result: - #else - Results $firstIndex - $lastIndex of ${searchresults.getHitcount()}: - #end - #end - ## --------------- - ## Previous page - ## --------------- - #if($searchresults.hasPrevious($firstIndex) && $displayUI) - #set($linkfirstIndex = $searchresults.getPreviousIndex($firstIndex,$itemsPerPage)) - #set($link = "${doc.name}?text=${query}&firstIndex=${linkfirstIndex}") - {pre} - <a href="$link"><img src="${doc.getAttachmentURL("previous.png")}" alt="previous" />previous page</a> - {/pre} - #end - ## ------------- - ## Next page - ## ------------- - #if($searchresults.hasNext($firstIndex,$itemsPerPage) && $displayUI) - #set($linkfirstIndex = $searchresults.getNextIndex($firstIndex,$itemsPerPage)) - #set($link = "${doc.name}?text=${query}&firstIndex=${linkfirstIndex}") - {pre} - <a href="$link"><img src="${doc.getAttachmentURL("next.png")}" alt="next" />next page</a> - {/pre} - #end - ## ----------------- - ## Display results - ## ----------------- - #if ($request.xpage && $request.xpage == "rdf") - #set ($baseurl = "http://${request.serverName}") - #set ($description = "RSS feed for search on '$text'") - #set ($list = $xwiki.arrayList) - #foreach ($item in $results) - #if ($item.type != "attachment") - #set ($ok = $list.add(0, "${item.web}.${item.name}")) - #end - #end - #set ($ok = $response.setContentType("text/xml")) - #includeInContext("XWiki.WebRssCode") - #else - #set ($list = $results) - #set ($isScored = true) - #includeInContext("XWiki.Results") - #end - #end - #else - #error("Lucene plugin not found. Make sure it's defined in your xwiki.cfg file.") - #end -#end -{pre} -#if ($displayUI) -## --------------- -## Rebuild processing -## --------------- -#set($lucene = $xwiki.getPlugin("lucene")) -#if($lucene) -#set($doRebuild = $request.getParameter("rebuild")) -#if($doRebuild) - #if($doRebuild=="yes") - #set($documentCount = $lucene.rebuildIndex()) - #if(${documentCount}>=0) - {/pre}#info("Started index rebuild with $documentCount documents.\\ - Will take some time depending on the number of pages/attachments."){pre} - #else - #error("Index rebuild failed.") - #end - #end -#else -## --------------- -## Queue & rebuild option -## --------------- - #set ($queuesize = $xwiki.lucene.getQueueSize()) - #if ($queuesize > 2) - #set($info1 = "Lucene is currently building its index, ${queuesize} documents in queue.") - #else - #set($info1 = "Lucene index is up to date.") - #end - #if($xwiki.hasAdminRights()) - #set($info2 = " [Rebuild the Lucene index>${doc.web}.${doc.name}?rebuild=yes].") - #else - #set($info2 = "") - #end - {/pre}#info("${info1}${info2}"){pre} -#end -#end -## --------------- -## Comment -## --------------- -{/pre} -#warning("This is the new experimental Lucene search engine. \\ - You can still use the XWiki [default search engine>WebSearch?text=$query].") -{pre} -#end +<content>## =================== +## Lucene search +## =================== +## Inputs : $request.text +## Outputs : $list, $isScored +## =================== +## Uncomment this line to overload the maximum list of wiki where to search (also the one listed in the wikis combobox) +## #set($allwikinamelist = ["xwiki", "wiki1", "wiki2"]) +## +## Uncomment this line to overload the wikis where to search +## #set($wikinames = "xwiki,wiki,wiki") +## +{pre} +#set ($displayUI = true) +#if ($request.xpage && $request.xpage == "rdf") + #set ($displayUI = false) +#end +## --------------- +## Title +## --------------- +#if ($displayUI) +{/pre} +1 Search +{pre} +#end +## --------------- +## Space filtering +## --------------- +#if($request.space && $request.space != "") + #set($space = $request.space) + #set($reqspace = "AND web:${space}") +#else + #set($space = "") +#end +#set($spacesText = {}) +#set($spaces = $xwiki.spaces) +#set($ok = $spacesText.put("All","")) +#foreach($space in $spaces) + #set($ok = $spacesText.put($space,$space)) +#end +## --------------- +## Space macros +## --------------- +#macro(spaceoption $space $selectspace $spacesText) + <option value="$spacesText.get($space)" #if($selectspace == $spacesText.get($space))selected="selected"#end>$space</option> +#end +#macro(spaceselect $selectspace $spaces $spacesText) + <select name="space"> + #spaceoption("All" $selectspace $spacesText) + #foreach($space in $spaces) + #spaceoption($space $selectspace $spacesText) + #end + </select> +#end +## --------------- +## Wikis filtering +## --------------- +#set($wikinamelist = []) +#if(!$wikinames) + #set($wikinametable = $request.getParameterValues("wikinames")) + #set($wikinames = "") + #foreach($wikiname in $wikinametable) + #set($ok = $wikinamelist.add($wikiname)) + #if($wikinames != "") + #set($wikinames = $wikinames + ",") + #end + #set($wikinames = $wikinames + $wikiname) + #end +#else + #set($wikinametable = $wikinames.split(", ")) + #foreach($wikiname in $wikinametable) + #set($ok = $wikinamelist.add($wikiname)) + #end +#end +## +#if($xwiki.isVirtual()) + #if(!$allwikinamelist) + #set($currentwikiname = $context.database) + #set($ok = $context.setDatabase($context.mainWikiName)) + #set($allwikilist = $xwiki.searchDocuments(", BaseObject as obj, StringProperty as prop where doc.fullName=obj.name and obj.className='XWiki.XWikiServerClass' and prop.id.id=obj.id and prop.id.name='server'")) + #set($ok = $context.setDatabase($currentwikiname)) + ## + #set($allwikinamelist = []) + #foreach($wiki in $allwikilist) + #set($ok = $allwikinamelist.add($wiki.substring(17).toLowerCase())) + #end + #if(!$allwikinamelist.contains($context.mainWikiName)) + #set($ok = $allwikinamelist.add($context.mainWikiName)) + #end + #end + ## --------------- + ## Wikis macros + ## --------------- + #macro(wikinamesoption $wikiname $wikinamelist) + <option value="$wikiname" #if($wikinamelist.contains($wikiname))selected="selected"#end>$wikiname</option> + #end + #macro(wikinamesselect $allwikinamelist $wikinamelist) + <select name="wikinames"> + <option value="" selected="selected">All</option> + #foreach($wikiname in $allwikinamelist) + #wikinamesoption($wikiname $wikinamelist) + #end + </select> + #end +#else + #if($wikinames == "") + #set($wikinames = $context.mainWikiName) + #end +#end +## --------------- +## Query preparation +## --------------- +#set($text = $request.getParameter("text")) +#set($query = $text) +#if(!$query) + #set($query = "") +#end +#set($itemsPerPage = "30") +## --------------- +## RSS link +## --------------- +#set($utext = $xwiki.getURLEncoded($query)) +#if($space == "") + #set($url = $xwiki.getURL($doc.fullName, "view", "xpage=rdf&amp;text=${utext}" )) +#else + #set($url = $xwiki.getURL($doc.fullName, "view", "xpage=rdf&space=$space&text=${utext}")) +#end +#if ($displayUI) +<div style="float: right;"> + <a href="$url"><img src="$xwiki.getSkinFile("icons/black-rss.png")" style="border:0px" alt="rss icon" /></a> +</div> +## --------------- +## Query form +## --------------- +<form action="$doc.name" method="get"> +<div class="centered"> +Query <input type="text" name="text" value="$query" /> in space #spaceselect($space $spaces $spacesText)#if($xwiki.isVirtual()) in wikis #wikinamesselect($xwiki.sort($allwikinamelist) $wikinamelist)#end <input type="submit" value="Search"/> +</div> +</form> +#end +{/pre} +## --------------- +## Results processing +## --------------- +#if($query != "") + #set($lucene = $xwiki.getPlugin("lucene")) + #if($lucene) + ## --------------- + ## Lucene search + ## --------------- + #set($languages = "default,en,de") + #set($firstIndex = $request.getParameter("firstIndex")) + #if(!$firstIndex) + #set($firstIndex = "1") + #end + #set($searchresults = $lucene.getSearchResults("${query}$!{reqspace}", $wikinames, $languages, $xwiki)) + #set($results = $searchresults.getResults($firstIndex,$itemsPerPage)) + #if($searchresults.getHitcount()>0) + ## ----------------- + ## Results numbers + ## ----------------- + #set($lastIndex=$searchresults.getEndIndex($firstIndex, $itemsPerPage)) + #if ($displayUI) + #if($searchresults.getHitcount()==1) + One result: + #else + Results $firstIndex - $lastIndex of ${searchresults.getHitcount()}: + #end + #end + ## --------------- + ## Previous page + ## --------------- + #if($searchresults.hasPrevious($firstIndex) && $displayUI) + #set($linkfirstIndex = $searchresults.getPreviousIndex($firstIndex,$itemsPerPage)) + #set($link = "${doc.name}?text=${query}&firstIndex=${linkfirstIndex}") + {pre} + <a href="$link"><img src="${doc.getAttachmentURL("previous.png")}" alt="previous" />previous page</a> + {/pre} + #end + ## ------------- + ## Next page + ## ------------- + #if($searchresults.hasNext($firstIndex,$itemsPerPage) && $displayUI) + #set($linkfirstIndex = $searchresults.getNextIndex($firstIndex,$itemsPerPage)) + #set($link = "${doc.name}?text=${query}&firstIndex=${linkfirstIndex}") + {pre} + <a href="$link"><img src="${doc.getAttachmentURL("next.png")}" alt="next" />next page</a> + {/pre} + #end + ## ----------------- + ## Display results + ## ----------------- + #if ($request.xpage && $request.xpage == "rdf") + #set ($baseurl = "http://${request.serverName}") + #set ($description = "RSS feed for search on '$text'") + #set ($list = $xwiki.arrayList) + #foreach ($item in $results) + #if ($item.type != "attachment") + #set ($ok = $list.add(0, "${item.web}.${item.name}")) + #end + #end + #set ($ok = $response.setContentType("text/xml")) + #includeInContext("XWiki.WebRssCode") + #else + #set ($list = $results) + #set ($isScored = true) + #includeInContext("XWiki.Results") + #end + #end + #else + #error("Lucene plugin not found. Make sure it's defined in your xwiki.cfg file.") + #end +#end +{pre} +#if ($displayUI) +## --------------- +## Rebuild processing +## --------------- +#set($lucene = $xwiki.getPlugin("lucene")) +#if($lucene) +#set($doRebuild = $request.getParameter("rebuild")) +#if($doRebuild) + #if($doRebuild=="yes") + #set($documentCount = $lucene.rebuildIndex()) + #if(${documentCount}>=0) + {/pre}#info("Started index rebuild with $documentCount documents.\\ + Will take some time depending on the number of pages/attachments."){pre} + #else + #error("Index rebuild failed.") + #end + #end +#else +## --------------- +## Queue & rebuild option +## --------------- + #set ($queuesize = $xwiki.lucene.getQueueSize()) + #if ($queuesize > 2) + #set($info1 = "Lucene is currently building its index, ${queuesize} documents in queue.") + #else + #set($info1 = "Lucene index is up to date.") + #end + #if($xwiki.hasAdminRights()) + #set($info2 = " [Rebuild the Lucene index>${doc.web}.${doc.name}?rebuild=yes].") + #else + #set($info2 = "") + #end + {/pre}#info("${info1}${info2}"){pre} +#end +#end +## --------------- +## Comment +## --------------- +{/pre} +#warning("This is the new experimental Lucene search engine. \\ + You can still use the XWiki [default search engine>WebSearch?text=$query].") +{pre} +#end {/pre}</content> </xwikidoc> _______________________________________________ notifications mailing list notifications@xwiki.org http://lists.xwiki.org/mailman/listinfo/notifications