| <!-- |
| Copyright 2024 The Go Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style |
| license that can be found in the LICENSE file. |
| --> |
| <!doctype html> |
| <html> |
| <head> |
| <title>Oscar Search</title> |
| <link rel="stylesheet" href="static/style.css"/> |
| <link rel="stylesheet" href="static/search.css"/> |
| </head> |
| <body> |
| <div class="section" class="header"> |
| <h1>Gaby search</h1> |
| <p>Search Gaby's database of GitHub issues and Go documentation.</p> |
| <div class="filter-tips-box"> |
| <div class="toggle" onclick="toggle()">[show/hide input tips]</div> |
| <ul id="filter-tips"> |
| <li><b>query</b> (string): the text to search for neigbors of OR the ID (usually a URL) of a document in the vector database</li> |
| <li><b>min similarity</b> (<code>float64</code> between 0 and 1): similarity cutoff (default: 0, allow all)</li> |
| <li><b>max results</b> (<code>int</code>): maximum number of results to display (default: 20)</li> |
| <li><b>include types</b> (comma-separated list): document types to include, e.g <code>GitHubIssue,GoBlog</code> (default: empty, include all)</li> |
| <li><b>exclude types</b> (comma-separated list): document types to filter out, e.g <code>GitHubIssue,GoBlog</code> (default: empty, exclude none)</li> |
| </ul> |
| </div> |
| <form id="form" action="/search" method="GET"> |
| <span> |
| <label for="query"><b>query</b></label> |
| <input id="query" type="text" name="q" value="{{.Query}}" required autofocus /> |
| </span> |
| <span> |
| <label for="threshold">min similarity</label> |
| <input id="threshold" type="text" name="threshold" value="{{.Threshold}}" optional autofocus /> |
| </span> |
| <span> |
| <label for="limit">max results</label> |
| <input id="limit" type="text" name="limit" value="{{.Limit}}" optional autofocus /> |
| </span> |
| <span> |
| <label for="allow_kind">include types</label> |
| <input id="allow_kind" type="text" name="allow_kind" value="{{.Allow}}" optional autofocus /> |
| </span> |
| <span> |
| <label for="deny_kind">exclude types</label> |
| <input id="deny_kind" type="text" name="deny_kind" value="{{.Deny}}" optional autofocus /> |
| </span> |
| <span class="submit"> |
| <input type="submit" value="search"/> |
| </span> |
| </form> |
| </div> |
| |
| <script> |
| const form = document.getElementById("form"); |
| form.addEventListener("submit", (event) => { |
| document.getElementById("working").innerHTML = "<p style='margin-top:1rem'>Working...</p>" |
| }) |
| function toggle() { |
| var x = document.getElementById("filter-tips"); |
| if (x.style.display === "block") { |
| x.style.display = "none"; |
| } else { |
| x.style.display = "block"; |
| } |
| } |
| </script> |
| |
| <div class="section"> |
| <div id="working"></div> |
| {{- with .SearchError -}} |
| <p>Error: {{.}}</p> |
| {{- else with .Results -}} |
| {{- range . -}} |
| <div class="result"> |
| {{if .IDIsURL -}} |
| <span><a class="id" href="{{.ID}}">{{.ID}}</a></span> |
| {{if .Title -}} |
| <span class="title"><a href="{{.ID}}">{{.Title}}</a></span> |
| {{end -}} |
| {{else -}} |
| <span class="id">{{.ID -}}</span> |
| {{with .Title}} |
| <span class="title">>{{.}}</span> |
| {{end -}} |
| {{end -}} |
| <span class="kind">type: {{.Kind}}</span> |
| <span class="score">similarity: <b>{{.Score}}</b></span> |
| </div> |
| {{end}} |
| {{- else -}} |
| {{if .Query}}<p>No results.</p>{{end}} |
| {{- end}} |
| </div> |
| </body> |
| </html> |