lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Erick Erickson" <erickerick...@gmail.com>
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 <zjclay@gmail.com> 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
approach.

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.

Best
Erick


>
> That's all my questions, thanks for your patient.
>
> Best Wishes
> Clay Zhong
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>

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