lucy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew S. Townley" <>
Subject [lucy-user] Mostly re: the SWIG part (was Re: [lucy-user] Question about query parsing API
Date Fri, 25 Feb 2011 14:56:44 GMT
Hi Jens,

On 25 Feb 2011, at 1:41 PM, Jens Wille wrote:
> Andrew S. Townley [2011-02-25 13:41]:
>> If so, is there a way to traverse the query parse tree (or get a
>> callback notification when it matches terms)?  What I need to be
>> able to do is take an arbitrary fulltext search query and then
>> determine whether any search fields have been requested
>> explicitly.  I suppose a more ideal solution would be to have a
>> #target_fields method or something on the query object, but that
>> would just be convenience.
> i understand that problem has been solved in the meantime
> (Ferret::Search::Query#terms, basically)? ;-)

Yes, it seems like you did that as a byproduct of your change to Ferret (
 Doubly awesome.  Thanks!

>> Also, I mentioned SWIG in passing the other day in a previous
>> message.  Would it not be possible to just generate the bindings
>> for Ruby with SWIG?
> re SWIG, there was a clarifying statement by marvin humphrey on
> lucy-dev recently:
> <>

Thanks for the pointer.  Archive failure on my part.  However, after reading that and this (referenced in the above), I understand the rationale, and think it's
cool, but am slightly concerned about how easy it'll be to get it to generate Ruby.

To the larger Lucy community:

I can't find any documentation about Clownfish other than the above JIRA entry.  Is there
some discussion/project/docs somewhere?

The advantages of SWIG are that it's pretty widely used, and anyone with experience with both
the source and the target binding language can usually get something working in hours, not
days.  It seems to me that for lucy to get the adoption it needs to grow communities in other
circles besides Perl, you need to start doing some marketing about how much easier it is for
Joe-random-developer to take a Clownfish-enabled project and automatically generate the language
bindings of their choice.

As it stands, it seems that anyone interested in using lucy outside of Perl (or actually,
just as a C library) needs to:

a) Learn Clownfish
b) Implement Clownfish -> Lang conversion routines (in Perl?)
c) Run it on the lucy source
d) write binding tests
e) tweak bindings and/or conversion, e.g. goto b
f) rinse & repeat

I really like the mechanisms you're using in Clownfish--I really do, but it isn't going to
matter much (except for KinoSearch/Perl users) if there aren't people able to easily create
language bindings--no matter how much more powerful the plumbing is than SWIG or other approaches.

Please understand I'm not trying to be negative here.  I really want Lucy to succeed in its
goals.  I'm just trying to get a realistic picture of where things are and what's actually
involved.  I think finishing the incubation process and getting more user and host language
developer documentation in place (even a few example blog posts) would go a long way to attracting
some support.  Right now, except for the mailing list, lucy's just a black box that sounds
like it'll be cool--eventually (at least for non-Perl users). ;)

If these documentation resources, Clownfish intro materials or HOW-TO guides exist, then please
point me to them.  Google wasn't much help here, and I've been through the SVN browser several
times now with no luck.

It seems like the core architecture of Lucy and Clownfish are first-rate efforts.  Now, you
need to think about the right way to market it so that you can build the community.  Again,
it looks very much like Lucy is the long-term fit for what I'm working on, so I'm very interested
in how things develop and what I might have to bite off in terms of additional work to integrate
it at any level (C++ or Ruby) into what I have.

Thanks for your time,

Andrew S. Townley <>

View raw message