/**
17
* 查找索引
18
*/
19
public class Demo2 {
20
public static void main(String[] args) throws Exception {
21
// onlysearching, so read-only=true
22
long starttime = System.currentTimeMillis();
23
IndexReader reader =IndexReader.open(FSDirectory.open(new File("E:\\lucene\\index")),true);
24
IndexSearcher searcher = new IndexSearcher(reader);
25
searcher.setSimilarity(new IKSimilarity()); //在索引器中使用IKSimilarity相似度评估器
26
//String[] keys = {"4","testtest"}; //关键字数组
27
//String[] fields = {"id","title"}; //搜索的字段
28
//BooleanClause.Occur[] flags = {BooleanClause.Occur.MUST,BooleanClause.Occur.MUST}; //BooleanClause.Occur[]数组,它表示多个条件之间的关系 www.2cto.com
29
//使用 IKQueryParser类提供的parseMultiField方法构建多字段多条件查询
30
//Query query = IKQueryParser.parseMultiField(fields,keys, flags); //IKQueryParser多个字段搜索
31
Query query =IKQueryParser.parse("text","上海人"); //IK搜索单个字段
32
IKAnalyzer analyzer = new IKAnalyzer();
33
//Query query =MultiFieldQueryParser.parse(Version.LUCENE_CURRENT, keys, fields, flags,analyzer); //用MultiFieldQueryParser得到query对象
34
System.out.println("query:"+query.toString()); //查询条件
35
/*TopScoreDocCollector topCollector = TopScoreDocCollector.create(searcher.maxDoc(), false);
36
searcher.search(query,topCollector);
37
38
ScoreDoc[] docs = topCollector.topDocs(3).scoreDocs;
39
System.out.println(docs.length);*/
40
41
/**
42
*得到TopDocs对象之后,可以获取它的成员变量totalHits和scoreDocs.这两个成员变量的访问权限是public的,所以可以直接访问
43 www.2cto.com
*/
44
TopDocs topDocs = searcher.search(query,1000001);
45
Integer count = topDocs.totalHits;
46
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
47
for(int i = 0;i
48
ScoreDoc scoreDoc = scoreDocs[i];
49
Document document = searcher.doc(scoreDoc.doc);
50
document.get("text");
51
}
52
System.out.println("查找数据量:"+count);
53
long endtime = System.currentTimeMillis();
54
System.out.println(endtime-starttime);
55
reader.close(); //关闭索引
56 www.2cto.com
}
57
}
//直接查找的代码:
01
package sample3;
02
03
import java.net.UnknownHostException;
04
05
import com.mongodb.BasicDBObject;
06
import com.mongodb.DB;
07
import com.mongodb.DBCollection;
08
import com.mongodb.DBCursor;
09
import com.mongodb.DBObject;
10
import com.mongodb.Mongo;
11
import com.mongodb.MongoException;
12
13
public class Demo3 {
14
public static void main(String[] args) throws Exception{
15 www.2cto.com
Mongo mongo = new Mongo();
16
DB db = mongo.getDB("zhang");
17
DBCollection dbc = db.getCollection("test3");
18
DBObject basicdb = new BasicDBObject();
19
basicdb.put("$regex","上海人");
20
basicdb.put("$options","");
21
long startTime = System.currentTimeMillis();
22
DBCursor cursor = dbc.find(new BasicDBObject("text",basicdb));
23
int j =0;
24
w