lucene中文分词搜索的核心代码
2017-04-23 12:49
435 查看
public static void search(String indexDir,String q)throws Exception{ Directory dir=FSDirectory.open(Paths.get(indexDir)); IndexReader reader=DirectoryReader.open(dir); IndexSearcher is=new IndexSearcher(reader); // Analyzer analyzer=new StandardAnalyzer(); // 标准分词器 SmartChineseAnalyzer analyzer=new SmartChineseAnalyzer(); QueryParser parser=new QueryParser("desc", analyzer); Query query=parser.parse(q); long start=System.currentTimeMillis(); TopDocs hits=is.search(query, 10); long end=System.currentTimeMillis(); System.out.println("匹配 "+q+" ,总共花费"+(end-start)+"毫秒"+"查询到"+hits.totalHits+"个记录"); QueryScorer scorer=new QueryScorer(query); Fragmenter fragmenter=new SimpleSpanFragmenter(scorer); SimpleHTMLFormatter simpleHTMLFormatter=new SimpleHTMLFormatter("<b><font color='red'>","</font></b>"); Highlighter highlighter=new Highlighter(simpleHTMLFormatter, scorer); highlighter.setTextFragmenter(fragmenter); for(ScoreDoc scoreDoc:hits.scoreDocs){ Document doc=is.doc(scoreDoc.doc); System.out.println(doc.get("city")); System.out.println(doc.get("desc")); String desc=doc.get("desc"); if(desc!=null){ TokenStream tokenStream=analyzer.tokenStream("desc", new StringReader(desc)); System.out.println(highlighter.getBestFragment(tokenStream, desc)); } } reader.close(); }
相关文章推荐
- lucene 4.3 中文分词代码演示
- Lucene之——输出分词结果的核心代码
- 【Lucene3.6.2入门系列】第14节_SolrJ操作索引和搜索文档以及整合中文分词
- 【Lucene3.6.2入门系列】第14节_SolrJ操作索引和搜索文档以及整合中文分词
- lucene的建立索引,搜索,中文分词
- lucene3.0+版本中文分词测试+搜索结果+创建索引测试
- lucene3.0+版本中文分词测试+搜索结果+创建索引测试
- java之全文索引搜索lucene之增删改查文档与中文分词搜索
- java+lucene中文分词,百度搜索原理解析,十分重要的东西
- lucene2.4集成几种中文分词实例代码
- 【Lucene3.6.2入门系列】第14节_SolrJ操作索引和搜索文档以及整合中文分词
- lucene3.0+版本中文分词测试+搜索结果+创建索引测试
- Lucene之——打印分词核心代码
- 展示一下Lucene+自创中文分词而做的电影、论坛搜索引擎
- 【分享】Lucene.Net的中文分词组件AdvancedChineseAnalyzer
- 实现NUTCH中文分词的代码修改方法(收藏)
- C#使用Lucene建索引和搜索代码示例
- 给Lucene加入性能更好的中文分词1 的一点改动
- 【分享】Lucene.Net的中文分词组件AdvancedChineseAnalyzer
- 给Lucene加入性能更好的中文分词