使用lucene在多个字段中搜索一组关键字

时间:2012-02-03 06:16:41

标签: java mysql lucene innodb full-text-search

这些是由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" 

它只会显示此记录:

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

会有一个lucene查询吗?我使用java作为我的主要语言,并使用mysql作为我的数据库。我的数据库存储引擎是InnoDB

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

org.apache.lucene.queryParser。 MultiFieldQueryParser 专为此类案例而设计。