lucene4.6查询实例

package com.jiepu.lucene_49;


import java.io.IOException;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.DoubleField;
import org.apache.lucene.document.Field;

import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.search.WildcardQuery;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.Version;

public class TestRegQuery {
	
	public static void main(String[] args) throws IOException {
		Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_43);
		
		
		Directory directory = new RAMDirectory();
		//directory=FSDirectory.open(new File(""));
		IndexWriterConfig config=new IndexWriterConfig(Version.LUCENE_43, analyzer);
		IndexWriter iwriter = new IndexWriter(directory, config);
		Document doc = new Document();
		//StringField	
		//DoubleField
		//BinaryDocValuesField
		doc.add(new TextField("name", "text 麻痹的 addd  dd ", Field.Store.YES));
		doc.add(new TextField("content", "我是内容1号 content text 麻痹的 addddd 你是猪 ", Field.Store.YES));
		doc.add(new TextField("age", "25", Field.Store.YES));	
		doc.add(new TextField("url", "http://www.hao123.abc.com", Field.Store.YES));
		iwriter.addDocument(doc);
		
		Document doc2 = new Document();
		String text = "This is the text add   to be indexed. 你好啊 呵呵 内存索引";	
		doc2.add(new TextField("name", text, Field.Store.YES));	
		doc2.add(new TextField("content", "我是内容2号 content 麻痹的 addddd 你是猪 ",Field.Store.YES));
		doc2.add(new TextField("age", "26", Field.Store.YES));
		doc2.add(new TextField("url", "http://hao123.abc.com", Field.Store.YES));
		iwriter.addDocument(doc2);
		
		Document doc3 = new Document();
		doc3.add(new TextField("name", "add hello 测试的数据", Field.Store.YES));	
		doc3.add(new TextField("content", "我是内容3号 content  addddd 你是猪 ", Field.Store.YES));	
		doc3.add(new TextField("age", "22", Field.Store.YES));		
		doc3.add(new TextField("url", "http://www.baidu.com", Field.Store.YES));		
		iwriter.addDocument(doc3);
		
		iwriter.close();

		//directory=FSDirectory.open(new File(""));
		
		IndexReader indexReader =DirectoryReader.open(directory) ;//一般系统中reader使用单例模式
		IndexSearcher searcher = new IndexSearcher(indexReader);
		
		//BooleanQuery booleanQuery = new BooleanQuery();
		//NumericRangeQuery ageQuery = NumericRangeQuery.newIntRange("age", new Integer(20), new Integer(30), true, false);
		//booleanQuery.add(new BooleanClause(ageQuery, BooleanClause.Occur.MUST));	
		WildcardQuery query=new WildcardQuery(new Term("name","*add*"));	

		//String regex="http://*com/";

		//Term t=new Term("url",regex);
		//RegexQuery query=new RegexQuery(t);
		
		TopDocs topDocs = searcher.search(query, 100);
		ScoreDoc[] scoreDocs = topDocs.scoreDocs;
		System.out.println("size="+scoreDocs.length);
		for(int i=0;i<scoreDocs.length;i++) {
			Document document = searcher.doc(scoreDocs[i].doc);
			System.out.println(document.get("content"));
		}
		
		
		
	}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值