2012-02-03 26 views
0

一组在多个领域的关键字搜索,这些都是我的数据库由Lucene的索引中的列:使用Lucene

category_name/sub_category_name/classification_name/item_name/supplier 

然后采样数据如下:

ALUMINUM/ORDINARY/3"/CHINA ALUMINUM/<BLANK> 
ALUMINUM/ORDINARY/4"/USA ALUMINUM/<BLANK> 
ALUMINUM/SPECIAL/1"/PHL ALUMINUM/JKL MANUFACTURERS 
ALUMINUM/PLAIN/1"/CANADA ALUMINUM/ABC COMPANY 
ALUMINUM/SPECIAL/3"A/CHINA ALUMINUM/DEF INC 

我想我的用户要在搜索栏中输入一组关键字,请在所有列中搜索此关键字,并显示具体结果。如每当用户搜索

"ALUMINUM 3"A CHINA" 

它只会显示该记录:将有由一个Lucene的查询

ALUMINUM/SPECIAL/3"A/CHINA ALUMINUM/DEF INC 

?我使用java作为我的主要语言,而mysql用于我的数据库。我的数据库存储引擎是InnoDB

回答

0

如果您的搜索遍历所有列,那么将它们索引为一个字段。然后用户只需输入他们的查询,你就不需要做任何事情。

+0

那么我将使用什么类型的lucene查询呢? – maccramers 2012-02-04 13:03:27

+0

...无论你想要什么?你什么意思? – Xodarap 2012-02-04 16:01:32

+0

得到了你的意思。我使用queryparser进行解析,并且运行良好。谢谢! – maccramers 2012-02-07 21:17:57

0

org.apache.lucene.queryParser。 MultiFieldQueryParser专为这种情况而设计。