lucene使用3.0.3_Jirasearch 2.0狗粮:使用Lucene查找我们的Jira问题

lucene使用3.0.3

几年前,我首先构建并发布了Jirasearch ,它是用于薄型包装Lucene服务器的有趣的狗粮测试用例,以针对我们的Jira问题公开强大的搜索UI。

这很好地展示了Lucene的许多重要功能:

  • 使用块联接查询来建模父文档(原始的Jira问题)和子文档(每个注释)。 这种基本的关系结构在电子商务应用程序中也很常见,在电子商务应用程序中 ,您拥有一件产品(例如一件特定的衬衫),然后在该衬衫下拥有单独的SKU(尺寸/颜色组合)
  • PostingsHighlighter突出显示
  • 具有平面,层次结构和动态数值范围字段的构面。 请记住,您可以通过Shift +单击来选择多个构面值(多选) !
  • DrillSideways方面计数,因此您不会因为其他标签中的一个而损失其他标签的方面计数
  • AnalyzingInfixSuggester用于自动建议 ,包括近实时更新 。 建议是针对特定项目的:如果您已深入到特定项目,则这些建议将仅来自那些项目,这要归功于AnalyzingInfixSuggester 现在支持上下文
  • 近实时索引和搜索
  • WordDelimiterFilter以便拆分驼峰式标记(尝试搜索infix )
  • 同义字
  • 使用表达式动态计算匹配的排序顺序得分的新近度和相关性

奇怪的是,仍然缺少拼写校正甚至模糊的中缀建议(欢迎拉动请求!)。

自从Jirasearch最初发布以来,它已经引起了用户和开发人员的广泛使用和兴趣。 对于我来说,构建并保持它一直运行是一项很棒而令人沮丧的练习,因为我开始体验作为软件“生产”用户的生活。 同时,我们每个人都有一个不错的搜索UI来查找问题。

从Lucene 4.6.x升级到6.x

在过去一周左右的时间里,我还有另一个类似的令人沮丧的经历,这次是将Jirasearch从非常老的Lucene 4.6.x版本升级到最新的6.x版本。 很小的事情(但至关重要!)发生了变化,例如, 新要求要求将特殊的索引搜索器与ToParentBlockJoinQuery一起ToParentBlockJoinQuery ,这与必须使用DrillSideways发生冲突。 我在中缀提示器中遇到了这个错误 。 纯粹的否定布尔查询发生了一些变化,但是我仍然不确定(我现在已经解决了)什么!

我之前已经将Lucene服务器升级到了尺寸标注点,所以我可以“免费”获得Jirasearch中现有的数字字段。

Jirasearch的新功能

除了“仅”从Lucene 4.6.x升级到6.x,并将所有数字字段切换到新的尺寸点外,我还添加了一些引人注目的用户可见的改进(感谢Alexandre Rafalovitch提出了一些建议,因此,开始我意想不到的具有挑战性的升级和改进工作):

  • 最终,“ cuting@apache.org”以道格·切特的名字出现! 另外,如果您键入“ Doug”,则自动建议现在可以使用。
  • 新的“ 更新前的构面”维度使您可以深入查看一段时间未更新的问题。
  • 新的“ 最后评论用户”构面维度是最后对问题发表评论的用户。
  • 新的按面提交的维度使您可以深入了解给定开发人员已针对其进行更改的问题。
  • 自从从Subversion切换到Git以来,“ 提交的路径”层次结构方面维度已中断,该问题使您可以根据源树中针对该问题所更改的路径来查找问题。
  • 基础设施项目问题现在也包括在内。
  • 对每条注释的文本处理进行了一些小的改进,例如将引用的用户名扩展为其显示名,将commitbot注释链接直接映射到更改集并包括分支名称,以及一些新的同义​​词(尝试pnp !)。

新的方面字段特别有趣:您现在可以通过向下钻取“ 更新前”>“ 1个月前”和“ 最后评论用户=您” (这是亚历山大建议的用例)来查找您可能已杀死的问题。

另一个有趣的地方是看到给定开发人员对源代码树的不寻常部分( 提交路径 )做出了承诺( 提交 ),例如, 我针对Lucene Jira问题对Solr进行了更改的问题 。

开源Jirasearch

通过此更新,我还将在luceneserver github项目的examples/jirasearch 子目录下使所有基于Apache 2许可 的jirasearch开源 。

尽管Luceneserver本身完全是Java ,但Jirasearch应用程序的源代码可以从Apache Jira实例中提取所有问题的详细信息,并将这些文档转换为Lucene服务器文档,进行完整和近乎实时的索引编制,从而建立建议,和搜索界面完全是Python。

请注意,Python源代码不是特别漂亮。 但是,它们功能正常,并且一如既往:欢迎使用补丁程序!

我很可能在升级过程中遇到了麻烦。 如果是这样,请告诉我(在此处添加评论或向我发送电子邮件)。

翻译自: https://www.javacodegeeks.com/2016/10/jirasearch-2-0-dog-food-using-lucene-find-jira-issues.html

lucene使用3.0.3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

域名层级划分

文章目录教科书的定义域名结构示例教科书的定义 域名级数是指一个域名由多少级组成,域名的各个级别被 . 分开,最右边的那个词称为“顶级域名”。“顶级域名”又称之为“一级域名”,例如:.com、.org、.net、.cn 等。“二级域名”就…

java执行python脚本_使用Runtime.getRuntime().exec()在java中调用python脚本

举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本。假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用java调用控制台进程,即 Runtime.getRuntime().exec()&#xff0c…

linux 4.1.16 ftrace 进程调度,Linux内核进程调度overview(1)

一、概述决定何时、如何选择一个新进程运行的这组规则叫做:调度策略(scheduling policy)。Linux的调度是基于分时技术(time sharing):多个进程以“时间多路复用”方式运行,因为CPU的时间呗分成“片”(slice),给每个可运行进程分配…

postman测试工具,如何对参数使用md5加密

先创建环境变量password,并定义了变量值(例如:123456)访问登录接口通常是post提交登录用户名称和登录密码,且以json格式提交,所以在body-raw-json,填写json串如下图所示: 接着在pre-…

开源java性能分析工具_Java性能监控:您应该知道的5个开源工具

开源java性能分析工具鲜为人知但有用:开源应用程序性能监视的状态 对于任何应用程序来说,最重要的事情之一就是性能。 我们要确保用户获得他们能获得的最佳体验,并想知道我们的应用已启动并正在运行。 这就是为什么我们大多数人至少使用一种…

cmd编译可以通过执行没有结果_Go语言是如何完成编译的

Go语言是一门需要编译才能运行的编程语言,也就说代码在运行之前需要通过编译器生成二进制机器码,随后二进制文件才能在目标机器上运行,如果我们想要了解Go语言的实现原理,理解它的编译过程就是一个没有办法绕过的事情。预备知识想…

修改linux资源限制参数命令,linux passwd命令参数及用法详解--linux修改用户密码命令...

名称:passwd使用权限:所有使用者使用方式:passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]说明:用来更改使用者的密码参数:-k keep non-expired authentication tokens-l 关闭账号密码。效果相当于rmod.html target…

如何通过postman测试需要登录授权的接口

思路 请求需要登录授权的接口,就意味着你要传token给接口,所以请求接口(要测试的接口)之前就要先获取token,因为登录成功后服务端才会返回token,而token又设置了时效,所以每次请求接口&#xf…

junit 静态方法_预期异常规则和模拟静态方法– JUnit

junit 静态方法今天,我被要求使用RESTful服务,所以我按照Robert Cecil Martin的TDD规则开始实施它,并遇到了一种测试预期异常以及错误消息的新方法(对我来说至少是这样),因此考虑共享我的实现方法作为这篇文…

wordpress linux 目录,快速搭建WordPress(Linux)

作者:彭济环境要求一、配置LAMP(LinuxApacheMysqlPHP)1、安装apachesudo apt-get install apache2 //安装apache2apache2 -v //查看版本网页访问本机ip地址,查看是否安装成功2、安装phpsudo apt-get install php //安装phpphp -v //查看版本sudo apt-get…

postman测试工具中的js代码中的sendRequest()使用详解

发送get请求 const url http://115.28.108.130:5000/api/user/getToken/?appid136425; // 发送get请求 pm.sendRequest(url, function (err, res) {console.log(err ? err : res.text()); // 控制台打印请求文本 });发送表单格式post请求 //构造一个登录请求 const login…

atheros蓝牙设备驱动 小米_小米Air 13笔记本黑苹果WiFi蓝牙硬件改装方案二

该方案适合小米笔记本Air 13初代,适合小米笔记本PRO等型号,适合通用的预留有M.2 PCIE通道SSD卡槽的电脑。也是作者极力推荐的终极改造方案。总体方案: 使用笔记本主板上的M.2 nvme通道 SSD硬盘接口进行拓展。使用BCM943602CS专用的M.2[NGFF]转接卡进行改…

将经过身份验证的用户注入Spring MVC @Controllers

可以使用AuthenticationPrincipal批注和AuthenticationPrincipalArgumentResolver这是Spring MVS MethodArgumentResolver的实现)将注入经过身份验证的用户注入Spring MVC处理程序方法。 默认情况下, AuthenticationPrincipalArgumentResolver已通过Web安…

Oracle数据库的命令工具sql*plus/sqlplus介绍

Oracle 的 sql*plus 是与 Oracle 数据库进行交互的客户端工具,借助 sql*plus 可以查看、修改数据库记录。在 sql*plus 中,可以运行sql*plus 命令与 SQL 语句。MySQL 中的 mysql、show、mysqldump 等命令就类似于 Oracle 的 sql*plus 客户端命令。 SQL 语…

python实现局域网攻击_通过python实现DNS欺骗

假设在一个的局域网内有两个人:Bob和Eve。Eve想让Bob访问他创建的恶意网页,这样她就可以通过隐藏性的下载给Bob的计算机上安装恶意软件,或者可能展示一个欺骗性的站点来试图窃取Bob的认证信息。(图片来自以上提供的链接&#xff0…

查询linux kafka安装目录,Kafka 1.0.0安装和配置--Linux篇

阅读目录:1. 关闭防火墙和Selinux2. 安装所需环境JDK,Zookeeper3. 下载Kafka 1.0.0版本4. 配置Kafka5. 启动Kafka并验证6. 报错及解决7. 说明1. 关闭防火墙和SelinuxLinux的防火墙是咱们新手的噩梦,很多情况会出现能ping通,但是访问不了Web页…

随机数生成java代码_Java Bullshifier –生成大量随机代码库

随机数生成java代码生成大量随机Java应用程序的命令行工具 您一直在等待的命令行工具。 或不。 毕竟,这是很深奥的。 无论哪种方式,它对某些人都非常有用,而对其他人来说却是一个有趣的实用程序。 Bullshifier是David Levanon和Hodaya Gamli…

背景区域为负样本什么意思_词向量-skipgram与负采样

大纲:1. onehot vs 分布式表示2. 分布式表示的全局泛化能力3. how to learn word2vec - intuition4. SkipGram5. SkipGram Negative Sampling6. 评估词向量7. CBOW与SkipGram对比1. onehot vs 分布式表示Onehot表示:V (apple, going, I, home, machine ,learing)ap…

嵌入式linux应用程序实例,嵌入式Linux应用程序访问物理地址的实例

前言  按照Linux分层驱动思想,外设驱动与主机控制器的驱动不相关,主机控制器的驱动不关心外设,而外设驱动也不关心主机,外设访问核心层的通用应用程序接口进行数据传输,主机和外设之间可以进行任意的组合。这样思想要…

生成验证码图片的Java代码

文章目录验证码演示代码请求资源路径为什么要添加一个随机数的参数验证码演示代码 package priv.lwx.javaex.servlet_demo.web.servlet.response;import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import …