lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Erick Erickson" <>
Subject Re: Can lucene search from multi-index directory like using FK in database?
Date Tue, 04 Nov 2008 13:58:33 GMT
See below

On Tue, Nov 4, 2008 at 7:31 AM, Clay Zhong <> wrote:

> Hi Guys,
> I meet some problems when using Lucene 2.3.2. After a lot of research, I
> still can't find any ways to solve them. Hope you can give me some
> advice..
> 1. Can I search different document from multi-index when they have
> connections like FK in database?
> For example,
> Index Dir 1 (User): Field id, Field departmentId
> Index Dir 2 (Department): Field id, Field location
> How can I get all user that location is USA?
> Well, I can index location into User, or search from Department first to
> get departmentId. But they're really terrible, is there a better way?

Whenever you start thinking this way, step back, take a deep
breath and remember that Lucene is a *text search* engine, not a
database engine. Forget all you know about data normalization
and construct your index so you do NOT have any conception of
foreign keys. De-normalize your data so you can do this
kind of thing with simple queries. Yes, this takes more room and
it may not be reasonable. But unless and until you *know* you'll
have space/performance problems, this should be your first

If that doesn't work, think about hybrid solutions where you put your
text in a Lucene index and the data you really, really do need to
use in a RDBMS way in a real-live database. If you search the
archives you'll see this discussed in some detail.

> 2. How can I search from multi-index with one query? It's different from
> using MultiSearcher.
> For example, there's two fields, 'title' and 'content', when I search
> 'Java and Lucene', how can I get documents which contains 'Java' in
> 'title' and 'lucene' in 'content'? (not only 'Java and Lucene' in one
> field). I can add a field contains both 'title' and 'content', but
> that's really really bad solution....

+title:java +content:lucene

should do the trick, but you'll have to write your own code to know
that the phrase "java and lucene" should be broken up this way.


> That's all my questions, thanks for your patient.
> Best Wishes
> Clay Zhong
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message