Lucene——QueryParse搜索
来源:互联网 发布:互联网新闻数据分析 编辑:程序博客网 时间:2024/05/29 08:38
在主类中增加下面这样的代码
public void searchByQueryParse(Query query,int num) {try {IndexSearcher searcher = getSearcher();TopDocs tds = searcher.search(query, num);System.out.println("一共查询了:"+tds.totalHits);for(ScoreDoc sd:tds.scoreDocs) {Document doc = searcher.doc(sd.doc);System.out.println(doc.get("id")+"---->"+doc.get("name")+"["+doc.get("email")+"]-->"+doc.get("id")+","+doc.get("attach")+","+doc.get("date")+"============="+sd.score);}searcher.close();} catch (CorruptIndexException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
测试类中用这样这代码搜索
@Testpublic void searchByQueryParse() throws ParseException {//1、创建QueryParser对象,默认搜索域为contentQueryParser parser = new QueryParser(Version.LUCENE_35, "content", new StandardAnalyzer(Version.LUCENE_35));//<1>精确查找搜索content中包含有like的Query query = parser.parse("like");//有basketball或者football的,空格默认就是OR//query = parser.parse("book football");query = parser.parse("soccer AND game");//query = parser.parse("soccer game");//改变默认空格代表OR//改变空格的默认操作符,以下可以改成AND//parser.setDefaultOperator(Operator.AND);//改变搜索域为name为jack//query = parser.parse("name:jack");//<2>通配符查找可以实现前缀查找//同样可以使用*和?来进行通配符匹配//query = parser.parse("name:j*");//通配符默认不能放在首位//query = parser.parse("email:*qq.com");//开启第一个字符的通配符匹配,默认关闭因为效率不高//parser.setAllowLeadingWildcard(true);//<3>Boolean查询//匹配name中没有zhangsan但是content中必须有soccer的,+和-要放置到域说明前面//query = parser.parse("- name:zhangsan + soccer");//<4>范围查找//匹配一个区间,注意:TO必须是大写//query = parser.parse("id:[1 TO 6]");//闭区间匹配只会匹配到2//query = parser.parse("id:{1 TO 3}");//I like是连起来的//query = parser.parse("\"I like\"");//完全匹配I Like Football的//query = parser.parse("\"I like football\"");//<5>短语查询//I like football//i和football中间是一个空//query = parser.parse("\"I football\"~1");//<6>模糊查询//query = parser.parse("name:make~");//没有办法匹配数字范围(自己扩展Parser)//query = parser.parse("attach:[2 TO 10]");su.searchByQueryParse(query,10);}
- Lucene——QueryParse搜索
- Lucene——搜索部分
- Lucene——八种搜索
- 搜索学习——Lucene简介
- Lucene之——搜索实例
- Lucene:按词条搜索—TermQuery
- 又一个基于Lucene的企业级搜索工具——Kneobase
- Lucene.Net 开发介绍 —— 四、搜索(一)
- Lucene.Net开发介绍 —— 四、搜索(二)
- Lucene.Net 开发介绍 —— 四、搜索(三)
- Lucene小练九——各种搜索(精确,范围,数字)
- 一步一步学lucene——(第四步:搜索篇)
- Lucene学习笔记(二)——搜索,分词
- 基于Lucene的全文搜索——Solr
- Lucene —— 搜索结果高亮显示
- Java搜索工具——Lucene实例总结(一)
- 1.搜索之路——Nutch与Lucene
- 全文搜索Lucene——之倒排索引
- 解决下拉菜单被flash遮住问题
- 推荐mac os 下更改键盘映射软件KeyRemap4MacBook
- tomcat的安装及项目部署
- valgrind 的使用简介
- 纯虚函数的使用汇总
- Lucene——QueryParse搜索
- 将图片上传到数据库中
- 解决libc.so.6: version `GLIBC_2.14' not found问题
- Delphi静态变量
- 冒泡排序
- EJB3.0自学笔记,自学视频为黎活明老师主讲
- 各类分析函数调用关系图的工具
- 分析函数调用关系图(call graph)的几种方法
- 代码中创建数据库