lucene icon indicating copy to clipboard operation
lucene copied to clipboard

Luke web interface

Open msokolov opened this issue 2 years ago • 4 comments

Description

I threw together a demo for ApacheCon to show off vector search and I wanted a scrappy UI I could hack on. Luke seemed like a good place to start since it is already in the Lucene build and has a GUI. But I found two problems with it. First, the Swing UI made me feel like I had stepped into a car with Marty McFly; the fonts are not resizable, and there are other things about the app's design that have not aged well (the presentation of fields allows for their definition to vary by document, which they no longer can). Second, I wanted to run the demo on a remote machine (at least at first - I ended up not doing this in the end, but still, that would be a nice feature! and not everybody can tolerate an X Windows connection any more). So I ended up coding up a simple web UI that builds as part of Luke. It uses Luke's existing "models" but replaces the Swing UI with a web service based on the JDK's built-in HTTP server.

I do like the idea of having some kind of minimal UI "baked in" to Lucene that can be used for debugging an index, maybe on a remote machine, or as a basis for some demo. I'd like to propose adding a Luke webapp. I have these principles in mind for it that are nonnegotiable in my mind:

  1. No (or very minimal, no more than current Luke) dependencies. (side note: I thought of using Marple, but it isn't up to date and when I tried to get it working I realized node.js was involved, so I backed out. I don't want to get caught up in Javascript frameworks.)

actually that's my only principle. Anyway I'll post what I have.

msokolov avatar Oct 13 '22 20:10 msokolov

I believe @romseygeek worked on a HTTP based Luke-like thing and invested a lot of time into it.

dsmiley avatar Oct 13 '22 22:10 dsmiley

That was marple @dsmiley! Which might be a useful start but is indeed very out of date. It uses node to build the UI, but I'm sure there are better ways to do things now.

romseygeek avatar Oct 17 '22 08:10 romseygeek

I recognize there have been requests for a web-based Luke-like app. But I would prefer to develop/maintain such an application outside Lucene with some web application framework. It's a state-full application in nature, I think it'd be much easier to implement it with a decent framework that supports http sessions.

If you are not in a hurry, I'll try to create a web application based on Spring MVC (i.e. JavaEE Servlet) and Thymeleaf (100% Java & plain HTML with no cool JavaScripts for sustainability) that partially emulates Luke desktop GUI. It can be independent of the Lucene project/release.

mocobeta avatar Nov 06 '22 07:11 mocobeta

the Swing UI made me feel like I had stepped into a car with Marty McFly

HA!

mikemccand avatar Nov 02 '23 11:11 mikemccand