lucene自定义排序例子(三)

2014-11-24 10:46:16 · 作者: · 浏览: 10
cher = new IndexSearcher(directory);
Query query = new TermQuery(new Term("type","restaurant"));
Sort sort = new Sort(new SortField("location",new DistanceComparatorSource(10, 10)));
TopFieldDocs topDocs = searcher.search(query, null, 5,sort);
ScoreDoc[] docs = topDocs.scoreDocs;
//FieldDoc fieldDoc = (FieldDoc)topDocs.scoreDocs[0];
//System.out.println(fieldDoc.fields[0]);
for(ScoreDoc doc : docs){
FieldDoc fieldDoc2 = (FieldDoc)doc;
Document document = searcher.doc(doc.doc);
System.out.println(document.get("name"));
}
System.out.println(Math.sqrt(17));
}
private static void addPoint(IndexWriter writer,String name,String type,int x,int y) throws CorruptIndexException, IOException{
Document document = new Document();
document.add(new Field("name",name,Field.Store.YES,Field.Index.NOT_ANALYZED));
document.add(new Field("type",type,Field.Store.YES,Field.Index.NOT_ANALYZED));
document.add(new Field("location",x+","+y,Field.Store.YES,Field.Index.NOT_ANALYZED));
writer.addDocument(document);
}
}
运行结果:
4.1231055
Los Betos
5.0990195
Cafe Poca Cosa
7.28011
Nico's Toco Shop
12.0415945
El charro