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"));
}
}
}
lucene4.6查询实例
最新推荐文章于 2016-03-10 16:05:00 发布