0

在数据库中:

我有两张桌子。每个表中有三列。Table_A (column_primaryKey_A,column_A1,column_A2) Table_B (column_primaryKey_B,column_B1,column_B2)

下面是我想使用 Lucene 执行的 SQL: SELECT * FROM Table_A,Table_B WHERE column_primaryKey_A = column_primaryKey_B AND column_A1 = XX AND column_B1 = XX

我想创建两个索引文档(<strong>Index_Table_A, Index_Table_A),如何使用Lucene或Hibernate Search的机制来实现上面的东西?.

任何帮助将不胜感激!

4

1 回答 1

1

我不确定你为什么需要索引或者为什么要首先使用 lucene,但我可以告诉你如何使用一个索引来实现它。(使用两个索引是可能的,但性能显着降低)

使用一个索引,索引任何文档,如下所示:

title = column_primaryKey_A
column_A1 = val...
column_A2 = val2...
column_B1 = val3...
column_B2 = val4...

搜索时,您想对字段查询使用连词查询,如下所示

query = (column_A1:XX) AND (column_B1:XX)

您可以在此处找到有关 lucene 查询语法的更多信息。

编辑:由两个搜索组成的另一个选项可能效果较差:您可以在第一列上进行第一次搜索,收集所有相应的标题(id),然后将它们添加到第二个查询(在第二列上):

Query: (Column_B1:XX) AND ( id1 OR id2 OR ...)

其中 Id 是从第一次搜索中收集的结果。

于 2012-09-29T13:13:48.377 回答