1. public void queryParse(Query query , int num ){
  2. try {
  3. TopDocs tds = this.searcher.search(query, num);
  4. System.out.println("查询到的结果数:"+tds.totalHits);
  5. for(ScoreDoc sd : tds.scoreDocs){
  6. doc = this.searcher.doc(sd.doc);
  7. System.out.println("id:"+doc.get("id")+"---"+"name:"+doc.get("name")+"---"+"attachs:"+doc.get("attach")+"---"+"email:"+doc.get("email"));
  8. }
  9. } catch (IOException e) {
  10. // TODO Auto-generated catch block
  11. e.printStackTrace();
  12. } finally {
  13. try {
  14. this.searcher.close();
  15. } catch (IOException e) {
  16. // TODO Auto-generated catch block
  17. e.printStackTrace();
  18. }
  19. }
  20. }
  21. @Test
  22. public void testQueryParse() throws Exception{
  23. //创建QueryParser对象 默认的搜索域为content
  24. QueryParser parser = new QueryParser(Version.LUCENE_35, "content", new StandardAnalyzer(Version.LUCENE_35));
  25. //设置 空格的默认操作符为 AND  默认为OR
  26. //      parser.setDefaultOperator(Operator.AND);
  27. //开启第一个字符的通配符配置
  28. parser.setAllowLeadingWildcard(true);
  29. //搜索content中包含like的
  30. Query query = parser.parse("like");
  31. //既有like又有football的
  32. query = parser.parse("like foot ball");
  33. //域name为5555的
  34. query = parser.parse("name:5555");
  35. //在查询中加入通配符配置
  36. query = parser.parse("name:5*");
  37. //通配符默认不能放在首位
  38. query = parser.parse("name:*6");
  39. //查询content中包含kenan的 从中减去name为333的 加上id为6的
  40. query = parser.parse("kenan -name:333 +id:6");
  41. //字符串id从1到3 匹配一个区间 包含两边
  42. query = parser.parse("id:[1 TO 3]");
  43. //字符串id从1到3 匹配一个区间 不包含两边
  44. query = parser.parse("id:{1 TO 3}");
  45. //匹配 content包含foot ball这个字符串的
  46. query = parser.parse("\"foot ball\"");
  47. //like 和ball之间的距离小于等于2的  距离是他们之间的单词个数
  48. query = parser.parse("\"like ball\"~2");
  49. //模糊查询
  50. query = parser.parse("kenak~");
  51. su.queryParse(query, 10);
  52. }

转载于:https://blog.51cto.com/soukenan/1122358

lucene,基于QueryParser的搜索相关推荐

  1. Lucene5.5.4入门以及基于Lucene实现博客搜索功能

    前言 一直以来个人博客的搜索功能很蹩脚,只是自己简单用数据库的like %keyword%来实现的,所以导致经常搜不到想要找的内容,而且高亮显示.摘要截取等也不好实现,所以决定采用Lucene改写博客 ...

  2. 基于Lucene实现博客搜索功能

    前言: 最近毕设开会无意间听到小陈同学使用lucene整一个全文索引,出于好奇了解了一下发现其是结合相关分词器可以对一大段文字建立索引,然后可以实现搜索功能,本来博客一直差着一个搜索博客功能(不想通过 ...

  3. Katta:基于Lucene可伸缩分布式实时搜索方案

    http://www.ij2ee.com/2011/11/29/katta%EF%BC%9A%E5%9F%BA%E4%BA%8Elucene%E5%8F%AF%E4%BC%B8%E7%BC%A9%E5 ...

  4. #研发解决方案介绍#基于ES的搜索+筛选+排序解决方案

    郑昀 基于胡耀华和王超的设计文档 最后更新于2014/12/3 关键词:ElasticSearch.Lucene.solr.搜索.facet.高可用.可伸缩.mongodb.SearchHub.商品中 ...

  5. 基于Elasticsearch实现搜索建议

    搜索建议是搜索的一个重要组成部分,一个搜索建议的实现通常需要考虑建议词的来源.匹配.排序.聚合.关联的文档数和拼写纠错等,本文介绍一个基于Elasticsearch实现的搜索建议. 问题描述 电商网站 ...

  6. ACL 2020 | 基于不同硬件搜索更好的Transformer结构

    论文标题: HAT: Hardware-Aware Transformers for Efficient Natural Language Processing 论文作者: Hanrui Wang ( ...

  7. 基于Elasticsearch实现搜索推荐

    在基于Elasticsearch实现搜索建议一文中我们曾经介绍过如何基于Elasticsearch来实现搜索建议,而本文是在此基于上进一步优化搜索体验,在当搜索无结果或结果过少时提供推荐搜索词给用户. ...

  8. ElasticSearch学习29_基于Elasticsearch实现搜索推荐

    2019独角兽企业重金招聘Python工程师标准>>> 在基于Elasticsearch实现搜索建议一文中我们曾经介绍过如何基于Elasticsearch来实现搜索建议,而本文是在此 ...

  9. 微信lbs开发 php,【LBS】基于地理位置的搜索之微信 附近的人 简单实现

    缘由 本周技术群有一个同学说我们该怎么实现 由近到远的基于地理位置的搜索,我创业做电商的系统做过类似这样的服务,我把我们以前的操作给大家分享下 什么是LBS LBS 全称是 Location  Bas ...

最新文章

  1. ImportError: No module named pil
  2. 大湾区菜篮子基地 谋定·农业大健康-林裕豪:从玉农业再次入选
  3. C#用WebBrowser与WIN API辅助模拟获取网站完整Cookie
  4. 汉澳sinox2014x64server已经能够下载
  5. ccxprocess可以禁用么_提效 | 5G时代网站还需要加速么?
  6. jsp用tags传递参数
  7. flock用法详解 linux_linux下C语言中的flock函数使用方法 .
  8. Android 连接SQLite
  9. 软件we端压力测试,软件压力测试报告
  10. windows之电脑开机出现 this product is covered by one or more of the following prtents
  11. html div自动换行代码,css自动换行_css
  12. MC74HC595驱动
  13. 那些惊艳的算法—时间轮任务调度(sunwind整理)
  14. iOS内测平台fir.im,发布内测版本
  15. 冰桶算法在监控软件中有哪些用途
  16. 第一个小项目:学生成绩管理系统
  17. 免费电子书下载 网站(11个)
  18. google play直接下载apk安装包文件教程(blynk)
  19. Java阿里云发送短信
  20. 小程序底部导航iphoneX判断

热门文章

  1. P3868 [TJOI2009]猜数字(CRT板子)
  2. vuex实践之路——笔记本应用(三)
  3. linux命令之高级使用 find
  4. javascript数据结构-介绍
  5. 百度移动终端研发工程师笔试题
  6. C# web实现word 转Html、office转Html、pdf转图片 在线预览文件
  7. django开发Blog(1)
  8. C#4.0和VS2010新特性(三)
  9. Android应用程序框架
  10. SVN从win迁移到Linux上