diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-06-03 15:29:54 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-06-03 15:29:54 -0400 |
commit | 8a6a5320edc2c8a2ed357463b61f161d5b295fbf (patch) | |
tree | 3c2ad4350d247692a4e043a2c98dd56753ea63da /templates | |
parent | c688863cf171df72b57180df746453e3c584f633 (diff) | |
download | ikiwiki-8a6a5320edc2c8a2ed357463b61f161d5b295fbf.tar ikiwiki-8a6a5320edc2c8a2ed357463b61f161d5b295fbf.tar.gz |
search: Converted to use xapian-omega.
Everything is done except for the actual indexing. I plan to do incremental
indexing as pages change.
Diffstat (limited to 'templates')
-rw-r--r-- | templates/searchform.tmpl | 4 | ||||
-rw-r--r-- | templates/searchquery.tmpl | 117 |
2 files changed, 118 insertions, 3 deletions
diff --git a/templates/searchform.tmpl b/templates/searchform.tmpl index 7c4fdb026..d49cf22d3 100644 --- a/templates/searchform.tmpl +++ b/templates/searchform.tmpl @@ -1,7 +1,5 @@ <form method="get" action="<TMPL_VAR SEARCHACTION>" id="searchform"> <div> -<input type="text" name="phrase" value="" size="16" /> -<input type="hidden" name="enc" value="UTF-8" /> -<input type="hidden" name="do" value="hyperestraier" /> +<input type="text" name="P" value="" size="16" /> </div> </form> diff --git a/templates/searchquery.tmpl b/templates/searchquery.tmpl new file mode 100644 index 000000000..dd12d2970 --- /dev/null +++ b/templates/searchquery.tmpl @@ -0,0 +1,117 @@ +$set{thousand,$.}$set{decimal,.}$setmap{BN,,Any Country,uk,England,fr,France} +${ +$def{PREV, +$if{$ne{$topdoc,0},<INPUT TYPE=image NAME="<" ALT="<" +SRC="/images/xapian-omega/prev.png" BORDER=0 HEIGHT=30 WIDTH=30>, +<IMG ALT="" SRC="/images/xapian-omega/prevoff.png" HEIGHT=30 WIDTH=30>} +} + +$def{NEXT, +$if{$ne{$last,$msize},<INPUT TYPE=image NAME=">" ALT=">" +SRC="/images/xapian-omega/next.png" BORDER=0 HEIGHT=30 WIDTH=30>, +<IMG ALT="" SRC="/images/xapian-omega/nextoff.png" HEIGHT=30 WIDTH=30>} +} + +$def{P,<INPUT TYPE=image NAME="$1" VALUE="$1" SRC="/images/xapian-omega/page-$2.png" BORDER=0$opt{a} ALT="$1">} +$def{PAGE,$if{$gt{$1,9},$if{$gt{$1,99},$P{$1,$div{$1,100}}}$P{$1,$mod{$div{$1,10},10}}}$P{$1,$mod{$1,10}}} + +$def{S,<IMG SRC="/images/xapian-omega/page-$2s.png"$opt{a} ALT=$1>} +$def{SPAGE,$if{$gt{$1,9},$if{$gt{$1,99},$S{$1,$div{$1,100}}}$S{$1,$mod{$div{$1,10},10}}}$S{$1,$mod{$1,10}}} +} + +$def{PREV,$if{$ne{$topdoc,0},<INPUT TYPE=submit NAME="<" VALUE="Previous">}} + +$def{PAGE,<INPUT TYPE=submit NAME="[" VALUE="$1">} + +$def{SPAGE,<INPUT TYPE=submit NAME="[" VALUE="$1" DISABLED=disabled>} + +$def{NEXT,$if{$ne{$last,$msize},<INPUT TYPE=submit NAME=">" VALUE="Next">}} + +<p> + +<FORM NAME=P METHOD=GET +ACTION="$html{$env{CGIURL}}" TARGET="_top"> +<center> +<INPUT NAME=P VALUE="$html{$query}" SIZE=65> +<INPUT TYPE=SUBMIT VALUE="Search"> +<hr> +<SELECT NAME=DEFAULTOP> +<OPTION VALUE=or $if{$eq{$defaultop,or},SELECTED}>Matching any words +<OPTION VALUE=and $if{$eq{$defaultop,and},SELECTED}>Matching all words +</SELECT> +$if{$opt{topterms}, + <div title="Suggested terms to add to your query" + style="text-align:left;background:#cfc;border:1px solid green;padding:2px;font:11px verdana$. arial$. helvetica$. sans-serif;"> + $map{$topterms,<span style="white-space:nowrap"><INPUT TYPE=checkbox NAME=X VALUE="$prettyterm{$_}" onClick="C(this)">$prettyterm{$_}</span> } + <BR><NOSCRIPT><INPUT TYPE=hidden NAME=ADD VALUE=1></NOSCRIPT> + </div> +} +$or{$html{$error}, +$if{$eq{$msize,0}, +$if{$query,No documents match your query, +<hr>Searching $nice{$dbsize} documents +}, +$if{$not{$msizeexact}, + $nice{$add{$topdoc,1}}-$nice{$last} of about $nice{$msize} matches, + $if{$and{$eq{$last,$msize},$eq{$topdoc,0}}, + All $nice{$msize} matches, + $nice{$add{$topdoc,1}}$if{$ne{$add{$topdoc,1},$last},-$nice{$last}} of exactly $nice{$msize} matches} +} +<hr> +</center> +$list{$map{$queryterms,$list{$html{$uniq{$unstem{$_}}},<b>,</b>/<b>,</b>}: $nice{$freq{$_}}},Term frequencies: ,$. ,} +<br><small>Search took $time seconds</small> +<table> +$hitlist{<tr><td valign=top> +${<IMG SRC="/images/xapian-omega/score-$div{$percentage,10}.png" ALT="$percentage%" HEIGHT=16 WIDTH=32>} +<div title="$percentage%" style='float:left;width:60px;height:10px;border:1px solid black;margin-top:4px;'> +<div style='width:$div{$mul{$percentage,6},10}px; height:10px; background-color: red;'> +</div></div> +<div style='float:left;margin-top:2px;font-size:x-small;'> +<span title="$html{$date{$field{modtime},%Y-%m-%d %H:%M:%S}}"> +Modified:<br><b>$html{$date{$field{modtime},%Y-%m-%d}}</b></span><br> +$if{$field{language},Language: <b>$html{$field{language}}</b><br>} +$if{$field{size},<span title="$html{$field{size}} bytes">Size: <b>$html{$filesize{$field{size}}}</b></span><br>} +</div> +</td> +<td><B><A HREF="$field{url}">$html{$or{$field{caption},$field{title},$field{url},Untitled}}</A></B><BR> +<small>$highlight{$field{sample},$terms}$if{$field{sample},...}</small><br> +<A HREF="$field{url}">$html{$field{url}}</A><br> +<small> +$percentage% relevant$. matching: +<i>$list{$map{$terms,$html{$prettyterm{$_}}},$. ,</i> and <i>}</i></small>${for lynx:}<p></td></tr>} +</table> + +<br><center> + +${suppress next, prev, and page links if there's only one page} +$if{$ne{$lastpage,1}, +$set{a,$if{$opt{pagelink_height}, HEIGHT=$opt{pagelink_height}}$if{$opt{pagelink_width}, WIDTH=$opt{pagelink_width}}} + +${1-W ... X-(this)-Y ...} +$set{w,$min{3,$add{$thispage,-1}}} +$set{x,$max{$add{$opt{w},1},$add{$thispage,-3}}} +$set{y,$min{$lastpage,$add{$thispage,8}}} +$PREV +$map{$range{1,$opt{w}},$PAGE{$_}} +$if{$ne{$add{$opt{w},1},$opt{x}},...} +$map{$range{$opt{x},$add{$thispage,-1}},$PAGE{$_}} +$SPAGE{$thispage} +$map{$range{$add{$thispage,1},$opt{y}},$PAGE{$_}} +$if{$ne{$opt{y},$lastpage},...} +$NEXT +} +}} +</center><br> +$if{$dbname,<INPUT TYPE=hidden NAME=DB VALUE="$html{$dbname}">} +$if{$ne{$topdoc,0},<INPUT TYPE=hidden NAME=TOPDOC VALUE=$topdoc>} +$if{$ne{$hitsperpage,10},<INPUT TYPE=hidden NAME=HITSPERPAGE VALUE=$hitsperpage>} +$if{$fmt,<INPUT TYPE=hidden NAME=FMT VALUE="$html{$fmt}">} +$if{$cgi{COLLAPSE},<INPUT TYPE=hidden NAME=COLLAPSE VALUE="$html{$cgi{COLLAPSE}}">} +$if{$queryterms,<INPUT TYPE=hidden NAME=xP VALUE="$html{$queryterms}">} +<INPUT TYPE=hidden NAME=xDB VALUE="$html{$dbname}"> +<INPUT TYPE=hidden NAME=xFILTERS VALUE="$html{$filters}"> +$list{$relevants,<INPUT TYPE=hidden NAME=R VALUE=",.,">} +$if{$cgi{THRESHOLD},<INPUT TYPE=hidden NAME=THRESHOLD VALUE="$html{$cgi{THRESHOLD}}">} +</FORM> +<hr><div align=right><i><small><a href="http://www.xapian.org/">$html{$version}</a></small></i></div> |