Lucene6.0学习笔记——常用查询(一)

1.文本分词查询

@Test
public void textQuery(){
	String text="我们是中国人";
	String[] fields={"name","content"};
	QueryParser parser= new MultiFieldQueryParser(fields, LuceneDemo.analyzer);
	try {
		//建立索引
		LuceneDemo.createIndex();
		Query query=parser.parse(text);
		List<Document> documents=LuceneDemo.search(query);
		for(Document document:documents){
			System.out.println("文件名:"+document.get("name"));
			System.out.println("文件大小:"+document.get("size"));
			System.out.println("摘要内容:"+document.get("content"));
		}
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

打印结果为:

可以看到查询规则,会将文本进行分词,再根据指定查询字段去进行匹配,找出所需要的结果。

2.term查询TermQuery

Term term=new Term("content","我们是中国人");
Query query=new TermQuery(term);

打印结果为:

可以看出term不会对文本进行分词,而是直接当做关键字去进行查询,这里有点类似与SQL的模糊(%text%)查询。

3.多个term查询TermsQuery

Term term=new Term("name","wang");
Term term1=new Term("content","none");
Query query=new TermsQuery(term,term1);

打印结果为:

和Term查询基本一致,只是多了个条件。

注意:这两个条件是或者(or)的关系,也就是说只要满足其中一个条件即可。

转载于:https://my.oschina.net/visionit/blog/715585

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值