使用Lucene的搜索服务器搜索Jira问题
您可能还记得我的第一篇博客文章,其中描述了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; 也许我需要在“更多”下隐藏不常用的构面字段...
翻译自: https://www.javacodegeeks.com/2014/03/using-lucenes-search-server-to-search-jira-issues.html
使用Lucene的搜索服务器搜索Jira问题相关推荐
- lucene 搜索_使用Lucene的搜索服务器搜索Jira问题
lucene 搜索 您可能还记得我的第一篇博客文章 ,该文章描述了Lucene开发人员如何使用Lucene搜索应用程序查找我们的Jira问题来食用我们自己的狗粮. 该应用程序已成为许多现代Lucene ...
- java全文搜索服务器 solr_Apache Solr采用Java开发、基于Lucene的全文搜索服务器
http://docs.spring.io/spring-data/solr/ 首先介绍一下solr: Apache Solr (读音: SOLer) 是一个开源.高性能.采用Java开发.基于Luc ...
- Lucene.net站内搜索—5、搜索引擎第一版实现
目录 Lucene.net站内搜索-1.SEO优化 Lucene.net站内搜索-2.Lucene.Net简介和分词 Lucene.net站内搜索-3.最简单搜索引擎代码 Lucene.net站内搜索 ...
- 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 ...
- java es api jar包_Elasticsearch 搜索服务器 Java API 使用详解
ElasticSearch 是一个基于 Lucene 的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口.Elasticsearch 是用 Java 开发的, ...
- 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 ...
- 上个厕所的功夫弄清楚了ES搜索服务器
1.概念 ElasticSearch是一个基于Lucene的搜索服务器 是一个分布式.高扩展.高实时的搜索与数据分析引擎 基于RESTful web接口 Elasticsearch是用Java语言开发 ...
- 内网solr全文搜索服务器,快解析一步映射让外网访问
Solr,指apache solr,其全称为Search On Lucene Replication.Solr,是一个高性能,采用java开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提 ...
- ElasticSearch(搜索服务器)-第一天
1为什么使用es ElasticSearch 搜索服务器.简称es. 初识es 搜索时数据库的问题 2.1是什么 搜索服务器 软件 2.1.1互联网搜索 https://www.baidu.com/ ...
最新文章
- java raw_GitHub - Braw115/JavaWEB: JavaWEB学习之中的一些Demo
- Cocos2d-x之绘制线条
- javascript实现数组深复制的方法
- oracle 一个实例创建多个数据库_Oracle闪回,为你的数据库上一个安全防线
- Redis服务器被劫持风波
- 当你学会这项python数据提取神器时,请做好升职准备!
- [c#] 服务器提交了协议冲突. Section=ResponseHeader Detail=CR...的解决方案总结
- C# async await
- 测试理论学习(分类、流程、方法)
- 腾讯云 短信 简单使用
- centos修改ftp服务器密码是什么,centos ftp服务器密码忘记了
- 技术圈大佬,带你用技术赚到副业的第一桶金!
- Helio X30剩魅族一家客户 联发科恢复元气要一年半
- Window10 系统休眠或睡眠状态恢复-占用磁盘空间 100% 问题以及解决方法
- Jmeter二次开发准备-Jmeter插件开发
- “大数据杀熟”谁之祸?
- BIOS 与 CPU关系
- Android原生编解码接口 MediaCodec 之——完全解析
- 动态IP分配协议:DHCP
- NISP二级换CISP的时候需要再花钱吗?【NISP】管理中心