Introduction | |
------------ | |
Solr Search Velocity Templates | |
A quick demo of using Solr using http://wiki.apache.org/solr/VelocityResponseWriter | |
You typically access these templates via: | |
http://localhost:8983/solr/collection1/browse | |
It's called "browse" because you can click around with your mouse | |
without needing to type any search terms. And of course it | |
also works as a standard search app as well. | |
Known Limitations | |
----------------- | |
* The /browse and the VelocityResponseWriter component | |
serve content directly from Solr, which usually requires | |
Solr's HTTP API to be exposed. Advanced users could | |
potentially access other parts of Solr directly. | |
* There are some hard coded fields in these templates. | |
Since these templates live under conf, they should be | |
considered part of the overall configuration, and | |
must be coordinated with schema.xml and solrconfig.xml | |
Velocity Info | |
------------- | |
Java-based template language. | |
It's nice in this context because change to the templates | |
are immediately visible in browser on the next visit. | |
Links: | |
http://velocity.apache.org | |
http://wiki.apache.org/velocity/ | |
http://velocity.apache.org/engine/releases/velocity-1.7/user-guide.html | |
File List | |
--------- | |
System and Misc: | |
VM_global_library.vm - Macros used other templates, | |
exact filename is important for Velocity to see it | |
error.vm - shows errors, if any | |
debug.vm - includes toggle links for "explain" and "all fields" | |
activated by debug link in footer.vm | |
README.txt - this file | |
Overall Page Composition: | |
browse.vm - Main entry point into templates | |
layout.vm - overall HTML page layout | |
head.vm - elements in the <head> section of the HTML document | |
header.vm - top section of page visible to users | |
footer.vm - bottom section of page visible to users, | |
includes debug and help links | |
main.css - CSS style for overall pages | |
see also jquery.autocomplete.css | |
Query Form and Options: | |
query_form.vm - renders query form | |
query_group.vm - group by fields | |
e.g.: Manufacturer or Poplularity | |
query_spatial.vm - select box for location based Geospacial search | |
Spelling Suggestions: | |
did_you_mean.vm - hyperlinked spelling suggestions in results | |
suggest.vm - dynamic spelling suggestions | |
as you type in the search form | |
jquery.autocomplete.js - supporting files for dynamic suggestions | |
jquery.autocomplete.css - Most CSS is defined in main.css | |
Search Results, General: | |
(see also browse.vm) | |
tabs.vm - provides navigation to advanced search options | |
pagination_top.vm - paging and staticis at top of results | |
pagination_bottom.vm - paging and staticis at bottom of results | |
results_list.vm | |
hit.vm - called for each matching doc, | |
decides which template to use | |
hit_grouped.vm - display results grouped by field values | |
product_doc.vm - display a Product | |
join_doc.vm - display a joined document | |
richtext_doc.vm - display a complex/misc. document | |
hit_plain.vm - basic display of all fields, | |
edit results_list.vm to enable this | |
Search Results, Facets & Clusters: | |
facets.vm - calls the 4 facet and 1 cluster template | |
facet_fields.vm - display facets based on field values | |
e.g.: fields specified by &facet.field= | |
facet_queries.vm - display facets based on specific facet queries | |
e.g.: facets specified by &facet.query= | |
facet_ranges.vm - display facets based on ranges | |
e.g.: ranges specified by &facet.range= | |
facet_pivot.vm - display pivot based facets | |
e.g.: facets specified by &facet.pivot= | |
cluster.vm - if clustering is available | |
then call cluster_results.vm | |
cluster_results.vm - actual rendering of clusters |