This is a bit off-topic from the original post, but I thought folk might be 
interested.

If you want maximum speed for queries from front end to index servers (or don't 
want to run IIS on the backend servers), you can set up frontend/backend to 
communicate using binary TCP and .NET remoting.

This is faster at both network and code level, although I've never done any 
in-depth performance testing. Obviously the binary nature means it is only .NET 
to .NET, although it seems to work OK between versions of .NET providing your 
Lucene versions are the same.

Here's the briefest outline of how to do it.

1) Just like for web services, write a wrapper for a simple Lucene query server 
engine, in our case as a static search method on a static object which takes a 
Lucene query (and whatever other parameters you want such as page size, page 
length, sort field etc) and returns results from the index. This will be 
easiest if you wrap the native Lucene results in result objects of your own 
design. 

If I understand my locking correctly you only need to instantiate the searcher 
once as a static private member of this object, and you still get multithreaded 
performance. If anyone knows more about this and thinks I am wrong about the 
threading, please let me know! 

2) configure .NET remoting for binary serialization via TCP - you need to do 
this only once during first instantiation on both server and client ends, in my 
case on service startup in the former and IIS application start on the latter. 
The docs for this in 3.0 are at 
http://msdn.microsoft.com/en-us/library/kwdt6w2k(VS.85).aspx

3) have your front end create its lucene queries, and just call the search 
method on the object you created in 1) - .NET silently takes care of all the 
serialisation and network stuff.

There were some issues regarding serialization of Lucene queries - which could 
affect the web services scenario too - but I think Digy fixed them, at least 
for my app - thanks Digy!

Yours,
Moray
-------------------------------------
Moray McConnachie
Head of IS        +44 1865 261 600
Oxford Analytica  http://www.oxan.com

-----Original Message-----
From: Jokin Cuadrado [mailto:joki...@gmail.com]
Sent: 25 February 2009 17:02
To: lucene-net-user@incubator.apache.org
Subject: Re: Compass or Solr equivalents?

no one AFAIK, we wrote our own webservice wrappers for communication between 
frontends and index machines, for index replication we use a simple robocopy.  
it's easy, but you don't have some goodies of solr like facets.

On Wed, Feb 25, 2009 at 5:24 PM, Dustin Whitney <dwhit...@digitas.com>wrote:

> Hello,
>
>    My experience with Lucene has been in the Java world and I¹ve had a
> lot of success getting Lucene up and running quickly with both Compass
> and Solr.
> Now I¹m on a project using Lucene.NET.  Are there any wrappers like
> Compass and Solr for Lucene.NET?
>
> Thanks,
> Dustin
>



--
Jokin



Reply via email to