您可能还记得我的第一篇博客文章,其中描述了Lucene开发人员如何使用Lucene搜索应用程序查找我们的Jira问题来食用我们自己的狗食。

该应用程序已成为许多Lucene现代功能的强大展示,例如侧向钻取和动态范围刻面, 基于中缀匹配的新建议 , 发布荧光笔 ,块联接查询,因此您可以跳转到与您的匹配的特定问题注释搜索,近实时索引和搜索等。每当新用户向我询问Lucene的功能时,我都会将他们指向该应用程序,以便他们可以自己查看。

最近,我取得了一些进一步的进展,因此我想进行更新。

简单的基于Netty的Lucene服务器的源代码现在可以在此subversion分支上使用 (有关详细信息,请参阅LUCENE-5376 )。 我一直在逐步增加其他Lucene模块的覆盖范围,包括构面,建议程序,分析,queryparsers,突出显示,分组,联接和表达式。 当然还有正常的索引和搜索! 还有许多工作要做(有很多未提交的内容),此处的目标不是构建功能丰富的搜索服务器,而是演示如何在服务器上下文中使用最少的“瘦服务器”附加源代码使用Lucene当前的模块。

另外,为了测试此基于Lucene的新服务器并完成“狗食”,我构建了一个简单的Jira搜索应用程序插件,以帮助我们在此处找到Jira问题。 该应用程序具有各种Python工具,可以使用Jira的REST API和作为Python WSGI应用程序运行的用户界面层提取和索引Jira问题,以将请求发送到服务器并将响应呈现回用户。 该Jira搜索应用程序的目标是使它易于指向任何Jira实例/项目,并能够对所有问题进行全面搜索。

我只是对生产站点进行了进一步的更改:

  • 我将Jira搜索应用程序升级到当前服务器分支(以前它在我的私有fork上运行)。
  • 我将所有分析组件都切换到了Lucene的分析工厂。 这些工厂使用Java的SPI(服务提供商接口),以便服务器可以访问类路径中的任何字符过滤器,令牌化器和令牌过滤器。 这在构建服务器时非常有帮助,因为这意味着您不需要任何特殊的代码即可处理Lucene如今提供的大量分析组件。 一切都简单地通过了工厂(工厂知道如何解析自己的论点)。
  • 我已经添加了Tika项目,所以现在您也可以找到Tika问题。 添加起来非常简单,并且似乎可以正常工作!
  • 我插入了WordDelimiterFilter以便拆分CamelCaseTokens。 例如,尝试搜索中缀并记下高亮。 正如Rober Muir提醒我的那样, WordDelimiterFilter会破坏偏移量,在某些情况下,偏移量会使突出显示混乱,因此我将尝试设置ICUTokenizer (我已经在使用它)来进行拆分。
  • 在您进行文本搜索时,默认情况下,我切换到Lucene的新表达式模块来进行相关性+新近度排序,这很有用,因为大多数时候我们都在寻找最近接触的问题。 以前,我使用自定义FieldComparator来实现相同的功能,但是表达式更加紧凑和强大,可以删除该自定义FieldComparator
  • 我切换到的建议近乎实时的建设,使用AnalyzingInfixSuggester 。 以前,我每隔五分钟就完全重建一次建议程序,所以这节省了很多CPU,因为现在我只是在问题出现时添加新的Jira问题并刷新建议程序。 这也意味着从添加索引到建议索引之间的延迟要短得多。 有关详细信息,请参见LUCENE-5477 。
  • 我现在每天commit一次。 以前,我从不承诺,只是依靠近实时搜索。 这工作得很好,除非当我需要关闭服务器时(例如,推出新更改),它需要完全重新索引,这是非常快的,但是对于那些在搜索过程中偶然进行搜索的用户来说,体验很差。 现在,当我启动服务器时,它又回到了最后一次提交,然后近实时索引Swift赶上了自最后一次提交以来发生的任何已更改问题。
  • 各种小问题,例如重命名Jira问题时的正确处理(Jira REST API很难发现这一点!); 更好的生产推动自动化; 升级到引导 UI库的更新版本。

此Jira搜索应用程序仍需进行大量改进。 对于具有许多可能的向下钻取值的字段,我想使用一个简单的建议程序,以便用户可以快速向下钻取。 我想修复建议程序,以根据项目过滤建议。 例如,如果您深入研究了提卡问题,那么当您输入新搜索时,您应该只会看到建议的提卡问题。 为此,我们需要使AnalzyingInfixSuggester上下文感知 。 我还想为所有方面字段提供更紧凑的UI; 也许我需要在“更多”下隐藏不常用的构面字段...

参考: 使用Lucene的搜索服务器从我们的JCG合作伙伴 Michael Mc Candless的Change Bits博客中搜索Jira问题 。

翻译自: https://www.javacodegeeks.com/2014/03/using-lucenes-search-server-to-search-jira-issues.html

使用Lucene的搜索服务器搜索Jira问题相关推荐

  1. lucene 搜索_使用Lucene的搜索服务器搜索Jira问题

    lucene 搜索 您可能还记得我的第一篇博客文章 ,该文章描述了Lucene开发人员如何使用Lucene搜索应用程序查找我们的Jira问题来食用我们自己的狗粮. 该应用程序已成为许多现代Lucene ...

  2. java全文搜索服务器 solr_Apache Solr采用Java开发、基于Lucene的全文搜索服务器

    http://docs.spring.io/spring-data/solr/ 首先介绍一下solr: Apache Solr (读音: SOLer) 是一个开源.高性能.采用Java开发.基于Luc ...

  3. Lucene.net站内搜索—5、搜索引擎第一版实现

    目录 Lucene.net站内搜索-1.SEO优化 Lucene.net站内搜索-2.Lucene.Net简介和分词 Lucene.net站内搜索-3.最简单搜索引擎代码 Lucene.net站内搜索 ...

  4. solr 5.3.1 使用java_Apache Solr 5.3.1 发布下载,Java 全文搜索服务器

    Apache Solr 5.3.1 发布下载,主要更新内容如下: Bug 修复  (10)SOLR-7949: Resolve XSS issue in Admin UI stats page (Da ...

  5. java es api jar包_Elasticsearch 搜索服务器 Java API 使用详解

    ElasticSearch 是一个基于 Lucene 的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口.Elasticsearch 是用 Java 开发的, ...

  6. 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 ...

  7. 上个厕所的功夫弄清楚了ES搜索服务器

    1.概念 ElasticSearch是一个基于Lucene的搜索服务器 是一个分布式.高扩展.高实时的搜索与数据分析引擎 基于RESTful web接口 Elasticsearch是用Java语言开发 ...

  8. 内网solr全文搜索服务器,快解析一步映射让外网访问

    Solr,指apache solr,其全称为Search On Lucene Replication.Solr,是一个高性能,采用java开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提 ...

  9. ElasticSearch(搜索服务器)-第一天

    1为什么使用es ElasticSearch 搜索服务器.简称es. 初识es 搜索时数据库的问题 2.1是什么 搜索服务器 软件 2.1.1互联网搜索 https://www.baidu.com/ ...

最新文章

  1. java raw_GitHub - Braw115/JavaWEB: JavaWEB学习之中的一些Demo
  2. Cocos2d-x之绘制线条
  3. javascript实现数组深复制的方法
  4. oracle 一个实例创建多个数据库_Oracle闪回,为你的数据库上一个安全防线
  5. Redis服务器被劫持风波
  6. 当你学会这项python数据提取神器时,请做好升职准备!
  7. [c#] 服务器提交了协议冲突. Section=ResponseHeader Detail=CR...的解决方案总结
  8. C# async await
  9. 测试理论学习(分类、流程、方法)
  10. 腾讯云 短信 简单使用
  11. centos修改ftp服务器密码是什么,centos ftp服务器密码忘记了
  12. 技术圈大佬,带你用技术赚到副业的第一桶金!
  13. Helio X30剩魅族一家客户 联发科恢复元气要一年半
  14. Window10 系统休眠或睡眠状态恢复-占用磁盘空间 100% 问题以及解决方法
  15. Jmeter二次开发准备-Jmeter插件开发
  16. “大数据杀熟”谁之祸?
  17. BIOS 与 CPU关系
  18. Android原生编解码接口 MediaCodec 之——完全解析
  19. 动态IP分配协议:DHCP
  20. NISP二级换CISP的时候需要再花钱吗?【NISP】管理中心

热门文章

  1. HashSet的存储方式
  2. java oschina_简单说说 OSChina 的技术架构
  3. Mysql8.0可以使用解压版 这个比较快 好像现在都是解压版了
  4. android查看wifi是否双频,Android判断wifi是5G还是2.4G
  5. python处理脑电信号_用ICA去除脑电信号中的眼球链接
  6. 本地java判断zk节点是否存在
  7. 转:集群和分布式的区别
  8. Java BigDecimal和double区别
  9. 如何用for循环出数据库的数据
  10. spring boot简介_Spring Boot简介