Dieselpoint: Displaying All Document Fields
Last Updated Mar 2009
By Clinton Allen and Miles Kehoe, New Idea Engineering, Inc. - Volume 5 Number 3 - April-May 2008
We've been fortunate to have worked with some very interesting technologies from a number of very promising partner companies since we started in 1996. This month we're happy to write about one such partner company, Dieselpoint.
Based in Chicago, Dieselpoint has been providing search technology for a number of large companies worldwide, including McGraw Hill, Porsche and Northrup Grumman. And one of their many online retailing customers is HMV.co.uk, the leading specialist retailer of music, video, and computer games in the UK and Ireland. With New Idea Engineering, they are again on KMWorld's list of Top 100 Companies that Matter, and will be exhibiting at Enterprise Search Summit New York in May.
Dieselpoint is exciting technology implemented in pure Java. It can crawl web content, database content, and file systems; handles security well; and supports a wide variety of document formats. It's incredibly easy to configure - it reminds some of us of Ultraseek in that respect - and it's fast for both indexing and query performance. On top of all of this, it has native support for Enterprise Search 2.0 features like dynamic navigation/facets. It may be the best search engine you haven't heard of - yet.
Rather than provide a full product review, which we hope to do in the near future, we thought we'd give a simple example of using Dieselpoint's API to perform a simple search capability and return all of the attributes of a document.
Setting Up
Setting up Dieselpoint is quite easy, and the default install includes all needed files. During the download, Dieselpoint includes the open source Jetty web server and servlet container, and it includes a Java run time. This means even if you have a brand new Windows PC with virtually no development tools installed, Dieselpoint will run from the tools included with the download. (Note: If you want to host Dieselpoint search inside Tomcat or some other web servlet contain/server, you can certainly do so. Did we mention that Dieselpoint will install as a service on Windows?)
After you download and start the program - from a command window or as a service, it opens the Dieselpoint console in a web browser at port 8080. Figure 1 shows the clean look and feel of the console.
Figure 1: Dieselpoint Search Console
At a later date, we'll walk through the entire Dieselpoint product with a full review. For now, we just want to get a simple program working, so let's move on.
The Code
The Acmecrafts demo ships with the system, and we've decided to take the quick way out by simply creating our code in the same directory as the console code - otherwise we would have has to spend a bit of time configuring the Jetty container. We located the console code on our system at D:\Apps\dieselpoint-search\webapps\admin, and created a jsp file there shown in Figure 2.
<html>Listing 1: Simple Search Program
<head>
<title> All Fields </title>
</head>
<body>
<%@page import="com.dieselpoint.search.*, java.io.* "%>
<%
String indexName = "acmecrafts";
String queryString = "black bear";
Index index = Index.getInstance(indexName);
out.print( "Opened Index "+indexName);
out.print ("<br> Query: "+queryString);
Searcher searcher = new Searcher(index);
searcher.setQueryString(queryString);
searcher.addColumn("*"); // * returns all visible columns in results
searcher.setNumberOfItemsOnAPage(40);
searcher.setPageNumber(0);
DieselResultSet rs = searcher.getResultSet(); // executes search
int totItems = searcher.getTotalItems();
out.print ("<br>Total items found: "+totItems);
DieselResultSetMetaData metaData = (DieselResultSetMetaData)rs.getMetaData();
int colCount = metaData.getColumnCount();
out.print("<br> Number of attributes: "+colCount+"<br>");
while (rs.next())
{ for (int i=1; i <=colCount; i++)
{ out.print("<br>"+metaData.getColumnLabel(i)+": ");
out.print(rs.getString(i));
}
}
%>
</body>
</html>
When this runs, you'll see an output like the one shown in Figure 2.
Figure 2: Sample Dieselpoint Data Display
In the real world, you probably don't want to show your content in as 'raw' a format as the one we used here; but this shows the way you can easily extract contents from a Dieselpoint collection. Just so you have an idea of what the sample code looks like, Figure 3 shows the same search performed from the demonstration code (source code included) with the download.
Figure 3: Dieselpoint Demonstration Search
Note the Category field in Figure 2 includes 'Notions': you can see in Figure 3 where that has become dynamic navigation 'facet' automatically. Very cool stuff, and very 'Enterprise Search 2.0' compatible.
As we said, in an upcoming issue we'll do a complete review of Dieselpoint; but until then, visit them on the web or at ESS New York. They are really moving up in the world of enterprise search!