There's absolutely nothing inherently wrong with using Velocity with lean 
templating to render responses from Solr.  It's just a templating technology.  

What you've done in your patch is replace the (IMO, and perhaps I'm the 
minority here?) clean Velocity template approach with some JavaScript/Ajax, in 
a much more obscure way to comprehend what is going on from UI to response 
rendering.

But, in your tabbed approach (something I've pondered and built prototypes of 
over the years), the HTML could (/should!) be rendered via Velocity templates - 
easy enough and much cleaner than JavaScript templating and actually showcases 
a better best practice as an example anyway, that being generating HTML on the 
server rather than on the client necessarily.  I'm of course pretty opinionated 
on these topics, perhaps just for old times sake clinging on to what seems like 
a clean way to do stuff.  Velocity itself should not get a bad rap here, since 
it's a top notch technology in and of itself.

I don't disagree that the admin UI ad-hoc querying ought to have the tabbed 
approach, so +1 to that.

Maybe I'll get my wish for Xmas this year... loads of quiet computer time to 
roll up my sleeves and tackle some of the many TODOs I have on the Velocity 
response writer, Prism, and so on.  There's good stuff there, so I'll aim to do 
lots of polishing to get this stuff more presentable than ever.

        Erik


On Dec 7, 2012, at 19:33 , Upayavira wrote:

> I realised yesterday what useful about /browse, and why it is wrong as
> it is.
> 
> The browse interface is a good way for a newcomer to explore some
> aspects of the query response without having to pour through lots of XML
> or JSON. It gives them a visual representation of their query result.
> 
> While that's useful, /browse using Velocity also gives the impression
> that using Velocity for this purpose is a good idea, which it so clearly
> isn't.
> 
> My thought, then, is that we should migrate the functionality of /browse
> over to the admin UI.
> 
> My thoughts are that the query pane should, on the left, have 'simple'
> and 'advanced' tabs. The simple tab gives a more conventional search
> interface, whereas the advanced tab shows whats there currently.
> 
> On the right, along the top you'd have buttons for XML, JSON, etc. One
> other button, HTML, would display the results of your search a bit more
> prettily, more like a conventional search results, or at least as much
> like that as possible when you really don't know much about what data
> you're getting back.
> 
> To put my money where my mouth is, I've uploaded a patch to JIRA[1] with
> a first pass at what I mean.
> 
> Thoughts/comments welcome.
> 
> Upayavira
> [1] https://issues.apache.org/jira/browse/SOLR-4157
> 
> On Tue, Dec 4, 2012, at 10:41 PM, Upayavira wrote:
>> But there's value in having something packaged within Solr itself, for
>> demo purposes.
>> 
>> That would I suspect make it Java (like it or not!) And that would
>> probably not make it very state-of-the art, unless it used jquery, with
>> a very lightweight java portion, which would be possible.
>> 
>> Upayavira
>> 
>> On Tue, Dec 4, 2012, at 05:42 PM, Erik Hatcher wrote:
>>> And basically that's what i had in mind with Prism here:
>>> <https://github.com/lucidimagination/Prism>
>>> Prism's very lightweight, uses Velocity (or not, any Ruby templating
>>> technology available), and is entirely separate from Solr.  Before that
>>> there was Flare:
>>> https://github.com/erikhatcher/solr-ruby-flare/tree/master/flare.   
>>> Prism is the approach I'd (obviously) take these days, and it's getting
>>> some more attention, it looks like, soon.
>>> 
>>> Blacklight and VuFind are much more richly capable.
>>> 
>>> So there's options already out there, and surely many others that I don't
>>> even mention.  A new top-level wiki page seems warranted from this
>>> discussion from <http://wiki.apache.org/solr/FrontPage> to list off all
>>> the various front-ends available.
>>> 
>>>     Erik
>>> 
>>> 
>>> 
>>> On Dec 4, 2012, at 12:11 , Upayavira wrote:
>>> 
>>>> That's an interesting take. 
>>>> 
>>>> I agree that Solr needs *something* for folks to use. It is unfortunate
>>>> that Solr actually has a functioning HTTP infrastructure, because it
>>>> then makes less sense to build an alternative one up. E.g. How about:
>>>> 
>>>> http://localhost:8983/solr  <- admin UI
>>>> http://localhost:8983/browse <- separate browse webapp
>>>> 
>>>> It would be a separate app that runs as another wepapp, accessing Solr
>>>> via HTTP just as any other app would.
>>>> 
>>>> It could still use Velocity, but would demonstrate that you shouldn't
>>>> integrate your app with Solr. A minimal dependency app for demonstration
>>>> purposes only.
>>>> 
>>>> Upayavira
>>>> 
>>>> On Tue, Dec 4, 2012, at 02:37 PM, Jack Krupansky wrote:
>>>>> Or, maybe integrate /browse with the Solr Admin UI and give it a graphic 
>>>>> treatment that screams that it is a development tool and not designed to
>>>>> be 
>>>>> a model for an app UI.
>>>>> 
>>>>> And, I still think it would be good to include SOME example of a
>>>>> prototype 
>>>>> app UI with Solr, to drive home the point of "here is [an example of] how 
>>>>> you need to separate UI from Solr."
>>>>> 
>>>>> -- Jack Krupansky
>>>>> 
>>>>> -----Original Message----- 
>>>>> From: Erik Hatcher
>>>>> Sent: Tuesday, December 04, 2012 9:29 AM
>>>>> To: solr-user@lucene.apache.org
>>>>> Subject: Re: How to change Solr UI
>>>>> 
>>>>> 
>>>>> On Dec 4, 2012, at 08:21 , Jack Krupansky wrote:
>>>>> 
>>>>>> "let's also be clear always that Solr is meant to be behind the firewall"
>>>>>> 
>>>>>> Absolutely, but we are NOT doing that when we provide the Velocity-based 
>>>>>> /browse UI.
>>>>>> Erik, your email example sounds reasonable, so if you want to substitute 
>>>>>> something like that for the /browse handler, fine. As you point out, it 
>>>>>> is 
>>>>>> not Velocity per se, but the /browse UI that results in a lack of 
>>>>>> clarity 
>>>>>> about Solr being meant to be behind the firewall.
>>>>> 
>>>>> Point taken about being clear about this.  But I disagree about removing 
>>>>> /browse.  It's useful, even if misunderstood/abused by some.  If there
>>>>> are 
>>>>> spots where we need to be clearer about what it is that is being
>>>>> rendered, 
>>>>> how it's rendered, and the pros/cons to it, then let's see about getting
>>>>> it 
>>>>> mentioned more clearly.
>>>>> 
>>>>> But do keep in mind that something like this example: having Solr return 
>>>>> suggestion lists as plain text suitable for suggest interfaces rather
>>>>> than 
>>>>> having it return JSON or XML and having a middle tier process it when all 
>>>>> you need is a plain list or some CSV.  It's quite fine and sensible to
>>>>> use 
>>>>> wt=velocity "behind the firewall" too, even /browse as-is.  Same as with
>>>>> the 
>>>>> XSL transformation writing capability.
>>>>> 
>>>>> Erik= 
>>>>> 
>>> 

Reply via email to