2012-09-29 99 views
0

數據庫:Lucene是否支持在多個索引文件之間搜索?

我有兩個表。每個表格中有三列。 表-A(column_primaryKey_A,column_A1,column_A2) 表-B(column_primaryKey_B,column_B1,column_B2)

下面是SQL,我想使用Lucene的事: 選擇 * FROM表-A,表-B WHERE column_primaryKey_A = column_primaryKey_B column_A1 = XX AND column_B1 = XX

我要創建兩個索引文檔(Index_Table_A,Index_Table_A)和我該如何使用Lucene或Hibernate Search的機制來實現上述事情?

任何幫助將感恩!

回答

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是從第一次搜索中收集的結果。

+0

所有字段索引到一個文件,是你的意思?但我想將這些字段索引到兩個文檔中,而不是一個文檔。並根據這兩個文檔的條件進行查詢。就像:SELECT * FROM Table_A,Table_B WHERE column_primaryKey_A = column_primaryKey_B AND column_A1 = XX AND column_B1 = XX – Jonathan

+0

不,您應該爲每列指定單獨的字段。這樣你會達到相同的結果(據我瞭解你的問題)。 據我所知,沒有辦法搜索獨立文檔的依賴關係,你可以做兩個依賴搜索(我將編輯我的答案)。 – dolbi