欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

lucene2.0中的查询疑问

程序员文章站 2022-06-12 12:18:42
...
环境:lucene2.0

我通过lucene把数据库中需要全文检索的表都建立了索引

其中包括:

id:主键
title:标题
content:描述
keywords:关键字
bigClass:大类
smailClass:小类
city: 城市

需求:
现在客户从客户端输入一个关键字k,那么,可以在title/content/keywords里面匹配,关系是or,就是说有一个满足就行了

bigClass/smailClass/city是and的关系

相当于sql: select * from table where (title like '%k%' or content like '%k%' or keywords like '%k%') and bigClass='大类' and smailClass='小类' and city='城市'


下面是我写的代码

String[] fields = {"title", "content","keywords"};//在title/content/keywords中找

BooleanClause.Occur[] flags = {BooleanClause.Occur.SHOULD,
              BooleanClause.Occur.SHOULD,
              BooleanClause.Occur.SHOULD};
query = MultiFieldQueryParser.parse(keywords, fields,flags,analyzer);

下面我就不怎么知道怎么写了:
if(bigClass!=null)加大类的限制条件
if(smailClass!=null)加小类的限制条件
if(city!=null)加城市的限制条件


还是有其他的更好的方法,请指点...