在数据库中:
我有两张桌子。每个表中有三列。 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机制实现上述内容?
任何帮助都会感激不尽!
答案 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是从第一次搜索中收集的结果。