Lucene是否支持在多个索引文档之间进行搜索?

时间:2012-09-29 06:03:16

标签: lucene hibernate-search

在数据库中:

我有两张桌子。每个表中有三列。 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

我想创建两个索引文档( Index_Table_A Index_Table_A )和如何使用Lucene或Hibernate Search机制实现上述内容?

任何帮助都会感激不尽!

1 个答案:

答案 0 :(得分: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查询语法中找到更多有关here的信息。

编辑:另外一个选项包含两个搜索可能效果较差: 你可以在第一列上搜索所有相应的标题(id),然后将它们添加到第二个查询(第二列):

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

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