Faceted Searching with Lucene.net and LION

by Jon Davis 6. May 2008 21:06

Two or three months ago I noted that I was planning on adding a nifty new QueryBuilder object as well as add new faceted searching support.


Um, well, we got sidetracked. But the need continued to haunt us, and a co-worker stumbled upon this:


.. which included a sample source file (SimpleFacets.cs) that proved to be a workable solution for us. (Wow. That was easy.)

I have reached the next major milestone for our project for

  • my pretty QueryBuilder object
  • faceted searching on a particular set of fields (my query can optionally specify specific values for facet counting rather than rely on the top scrape)
  • faceted searching on a named subquery (likely very slow [untested] but very powerful)

.. and that milestone is writing the code and making sure that the old application code still runs! I haven't even tested it yet. No, I didn't do TDD, shame, shame, shame!! Problem is, there's just so much code already that is not already bound to TDD unit tests that to refactor for NUnit or VSTS I'll have to really dedicate some time to make it worthwhile to form up a pattern .. and time is something I'm short on here. Then again, I don't have enough time NOT to write tests before writing code, so I'm feeling pretty lame right now.

That said, I did ask my boss a couple months ago if it was okay with him if I could open source LION (Lucene Indexing On .NET), he doesn't have a problem with it, and I'd like more hands in the pot. Everyone at the office is just too dang busy, and when they see it all they can say is, "Wow, that's a lot of code, I thought it was just Lucene.net API calls, you have WCF providers and query wrappers and document structure base classes and everything..." They don't exactly say that with appreciation; they want small chunks of throw-away code scattered everywhere. I have tried to make LION support that, too, but I don't write my implementation code that way so that's not what they see when I show it to them.

Anyway, now that faceting is partially implemented (fully written but untested, bleah) after I write some tests up and debug and everything works as it should I'm going to fork off the core projects and refactor and rename things and then open-source the whole thing. I'm trying to go in the direction of Lucene Solr on this in terms of front-end feature set, but there's a lot of re-thinking and refactoring to do on the service side to ever call it "enterprise class", our needs have been mostly met but others might be able to contribute to the project to help it meet their own custom needs (and hopefully with minimal tweaks).

Currently rated 1.2 by 5 people

  • Currently 1.2/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , , ,

EntitySpaces on Silverlight 2: Part One

by Jon Davis 4. May 2008 18:25

I managed to get EntitySpaces running on Silverlight over WCF client proxies. I documented the steps as a tutorial and Mike Griffin at EntitySpaces posted it up on the EntitySpaces blog.

http://www.entityspaces.net/blog/2008/05/05/EntitySpacesAndSilverlightDemoPart1.aspx kick it on DotNetKicks.com 

Demo here: http://developer.entityspaces.net/ES2008/Demos/Silverlight/PartOne/

I retained my Word doc so I can retain my personal preference of formatting, fix typos, and add a few annotations and disclaimers here and there like, "So far these steps don’t lend themselves very well to an offline development workflow. Finding a more appropriate workflow pattern, though, is beyond the scope of this initiative. (Good luck.)" We can thank Microsoft for making WCF on IIS 7 such a pain in the behind for binding service endpoints, without any code generation or GUIfication. But enough whining, client-side business objects in Silverlight is a hawt approach to LOB RIAs.

http://www.jondavis.net/misc/EntitySpaces and Silverlight Demo - Part 1.doc

Part two will be short 'n sweet but much more focused on actually working with EntitySpaces. This part didn't give ES justice...

EntitySpaces RIA running in Safari 3.1 (on Windows) with just about 20 lines of hand-written client-server code and XAML markup:

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Pet Projects | Computers and Internet | Software Development | Cool Tools | Web Development

WebKit Is Usable By End Users?

by Jon Davis 3. May 2008 18:20

I've been hearing a lot about WebKit being on the bleeding edge of staying up-to-date with performance and passing various tests like ACID 3. I was confused and concerned, though, because I had thought WebKit was only available to developers as a set of components (DLLs) and was not actually usable by end users.

I was sort of right, but mostly wrong. WebKit's nightly build, which is downloadable, runs on top of Safari (from a user perspective, that is .. technicaly, Safari sits on top of WebKit), replacing Safari's rendering engine with the latest "new and improved". After Safari 3.1 is fully installed, just download the latest nightly build of WebKit, run the batch file and go. (There were two batch files, I ran run-drosera.cmd and then I added a shortcut to run-nightly-webkit.cmd to my Quick Launch toolbar and changed the icon.)  WebKit does not kill off the official Safari renderer when Safari is launched in its normal fashion, it only overrides its renderer when launched from WebKit's .bat file.

Now I'm starting to think that Safari on the latest WebKit is the best browser. *gasp* Who'da thunk?

Currently rated 2.5 by 2 people

  • Currently 2.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Open Source | General Technology | Computers and Internet | Web Development


Powered by BlogEngine.NET
Theme by Mads Kristensen

About the author

Jon Davis (aka "stimpy77") has been a programmer, developer, and consultant for web and Windows software solutions professionally since 1997, with experience ranging from OS and hardware support to DHTML programming to IIS/ASP web apps to Java network programming to Visual Basic applications to C# desktop apps.
Software in all forms is also his sole hobby, whether playing PC games or tinkering with programming them. "I was playing Defender on the Commodore 64," he reminisces, "when I decided at the age of 12 or so that I want to be a computer programmer when I grow up."

Jon was previously employed as a senior .NET developer at a very well-known Internet services company whom you're more likely than not to have directly done business with. However, this blog and all of jondavis.net have no affiliation with, and are not representative of, his former employer in any way.

Contact Me 

Tag cloud


<<  May 2021  >>

View posts in large calendar