使用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"
它时,只会显示此记录:
ALUMINUM / SPECIAL / 3"A / CHINA ALUMINUM / DEF INC
是否会通过 lucene 查询来查询?我使用java作为我的主要语言,使用mysql作为我的数据库。我的数据库存储引擎是InnoDB
these are the columns of my database indexed by lucene:
category_name / sub_category_name / classification_name / item_name / supplier
then sample data are as follows:
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
i want my user to enter a group of keywords in the search bar, search this keywords in all of the columns and will display specific results. such as whenever the user searches for
"ALUMINUM 3"A CHINA"
it will just display this record:
ALUMINUM / SPECIAL / 3"A / CHINA ALUMINUM / DEF INC
will there by a lucene query for that? i use java as my main language, and mysql for my database. my database storage engine is InnoDB
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您的搜索涉及所有列,请将它们全部索引为一个字段。然后用户只需输入他们的查询,您不需要执行任何操作。
If your searches go across all columns, then index them all as one field. Then the user just types in their query and you won't need to do anything.
org.apache.lucene.queryParser.MultiFieldQueryParser 就是为这种情况设计的。
org.apache.lucene.queryParser.MultiFieldQueryParser is designed for such case.