[Lucene] # 3_ index database query

TermQuery


//使用Termquery查询
@Test
public void testTermQuery() throws Exception {
   Directory directory = FSDirectory.open(new File("D:\\temp\\index").toPath());
   IndexReader indexReader = DirectoryReader.open(directory);
   IndexSearcher indexSearcher = new IndexSearcher(indexReader);
   
   //创建查询对象
   Query query = new TermQuery(new Term("content", "lucene"));
   //执行查询
   TopDocs topDocs = indexSearcher.search(query, 10);
   //共查询到的document个数
   System.out.println("查询结果总数量:" + topDocs.totalHits);
   //遍历查询结果
   for (ScoreDoc scoreDoc : topDocs.scoreDocs) {
       Document document = indexSearcher.doc(scoreDoc.doc);
       System.out.println(document.get("filename"));
       //System.out.println(document.get("content"));
       System.out.println(document.get("path"));
       System.out.println(document.get("size"));
   }
   //关闭indexreader
   indexSearcher.getIndexReader().close();
}

Value range queries


@Test
public void testRangeQuery() throws Exception {
   IndexSearcher indexSearcher = getIndexSearcher();
   Query query = LongPoint.newRangeQuery("size", 0l, 10000l);
   printResult(query, indexSearcher);
}

Use queryparser inquiry

@Test
public void testQueryParser() throws Exception {
   IndexSearcher indexSearcher = getIndexSearcher();
   //创建queryparser对象
   //第一个参数默认搜索的域
   //第二个参数就是分析器对象
   QueryParser queryParser = new QueryParser("content", new IKAnalyzer());
   Query query = queryParser.parse("Lucene是java开发的");
   //执行查询
   printResult(query, indexSearcher);
}

private void printResult(Query query, IndexSearcher indexSearcher) throws Exception {
   //执行查询
   TopDocs topDocs = indexSearcher.search(query, 10);
   //共查询到的document个数
   System.out.println("查询结果总数量:" + topDocs.totalHits);
   //遍历查询结果
   for (ScoreDoc scoreDoc : topDocs.scoreDocs) {
       Document document = indexSearcher.doc(scoreDoc.doc);
       System.out.println(document.get("filename"));
       //System.out.println(document.get("content"));
       System.out.println(document.get("path"));
       System.out.println(document.get("size"));
   }
   //关闭indexreader
   indexSearcher.getIndexReader().close();
}
Published 78 original articles · won praise 0 · Views 1437

Guess you like

Origin blog.csdn.net/qq_30782921/article/details/92806963